perm filename MILES.MIC[ALF,DEK] blob
sn#439243 filedate 1979-05-16 generic text, type C, neo UTF8
COMMENT ā VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00008 00002 PAGE 0.1
C00022 00003 PAGE 3.2
C00061 00004 PAGE 2.1
C00107 00005 PAGE 1.1
C00155 00006 DATA STRUCTURES
C00164 00007 PAGE 4.1
C00192 00008 I/O CODES
C00193 ENDMK
Cā;
;PAGE 0.1
ORG 0
JMP BOOT
DS 1
EI
JMP LMIS
Z130: CALL ERROR
DS 1
EI
JMP FMIS
Z129: CALL ERROR
DS 1
EI
JMP KBIS
Z123: CALL ERROR
DS 1
Z124: CALL ERROR
DS 2
BOOT: LXI SP,ISPV
MVI A,34H
OUT LTIMR+3
OUT FTIMR+3
MVI A,70H
OUT LTIMR+3
OUT 0C3H
MVI A,0B0H
OUT LTIMR+3
OUT FTIMR+3
;PAGE 0.2
MVI A,16H
OUT INT
SUB A
OUT INT+1
MVI A,11010101B
OUT INT+1
MVI B,224
MVI A,0FFH
L00: OUT DISPL
DCR B
LHLD 0
JNZ L00
LXI H,4000H
L01: MVI M,0FFH
MOV A,M
INR A
JNZ RTE
MOV M,A
MOV A,M
ORA A
JNZ RTE
INX H
MVI A,0BFH
CMP H
JNC L01
IN DISPL
MVI B,11110000B
ANA B
CMP B
Z125: CNZ ERROR
EI
MVI A,01010010B
OUT BTLCH
LXI H,25000
CALL SLMSS
L15: LDA LMBSY
RAR
Z126: CNC ERROR
;PAGE 0.3
IN DISPL
ANI 00010000B
JNZ L15
MVI A,34H
OUT LTIMR+3
MVI A,70H
OUT LTIMR+3
CALL D2MS
MVI A,01110010B
OUT BTLCH
LXI H,100
CALL SLMSS
LXI H,35000
CALL SFMSS
L23: LDA FMBSY
RAR
Z127: CNC ERROR
IN DISPL
ANI 01000000B
JNZ L23
MVI A,34H
OUT FTIMR+3
MVI A,70H
OUT FTIMR+3
CALL D2MS
MVI A,00110110B
OUT BTLCH
LXI H,160
CALL SFMSS
L30: LXI H,NSCT
MVI M,127
DCX H
MVI M,40H
DCX H
MVI B,0
MOV M,B
DCX H
MVI M,1
DCX H
MOV M,B
;PAGE 0.4
DCX H
MOV M,B
DCX H
MVI M,1
DCX H
MVI M,8
CALL WDD
LXI H,NSCT
MVI M,128
DCX H
MVI M,80H
DCX H
MOV M,B
DCX H
MVI M,25
DCX H
DCX H
DCX H
DCX H
MVI M,8
CALL WDD
LDA 4000H
CPI 0CDH
L42: CNZ ERROR
JMP START
WDD: MOV A,M
CPI 8
JZ WDD
ORA A
RZ
Z128: CALL ERROR
ERROR: LXI D,DM1
;PAGE 0.5
NFE: POP B
PUSH B
DCX B
DCX B
DCX B
MVI A,4
STA BTS3
LXI H,BTS4
MOV A,B
RRC
RRC
RRC
RRC
CALL CAC
MOV A,B
CALL CAC
MOV A,C
RRC
RRC
RRC
RRC
CALL CAC
MOV A,C
CALL CAC
SUB A
STA KBLC
LXI H,BTS3
XCHG
CALL DMD
Z80: LDA KBLC
ORA A
JZ Z80
SUB A
STA KBLC
;PAGE 0.6
RET
CAC: CALL CDTAC
MOV M,A
INX H
RET
CDTAC: ANI 0FH
ADI '0'
CPI '9'+1
RC
ADI 'A'-'9'-1
RET
RTE: MOV A,H
RAL
MVI A,1110111B
JNC Z82
MVI A,1101011B
Z82: MVI H,224
Z83: OUT DISPL
DCR H
SHLD 0
JNZ Z83
Z84: JMP Z84
KBIS: PUSH PSW
PUSH D
PUSH H
IN DISPL
ANI 0FH
;PAGE 0.7
LXI H,KBCCT
MOV E,A
MVI D,0
DAD D
MOV D,M
LDA KBLC
CPI 5
JZ Z85
MOV L,A
MVI H,0
INR A
STA KBLC
MOV A,D
LXI D,KBIB
DAD D
MOV M,A
Z85: POP H
POP D
JMP EIS
LMIS: PUSH PSW
MVI A,34H
OUT LTIMR+3
MVI A,70H
OUT LTIMR+3
SUB A
STA LMBSY
JMP EIS
;PAGE 0.8
FMIS: PUSH PSW
MVI A,34H
OUT FTIMR+3
MVI A,70H
OUT FTIMR+3
SUB A
STA FMBSY
EIS: MVI A,20H
DI
OUT INT
POP PSW
EI
RET
SLMSS: DCX H
MOV A,L
OUT LTIMR+1H
MOV A,H
OUT LTIMR+1H
MVI A,3584 AND 0FFH
OUT LTIMR+0
MVI A,3584 SHR 8
OUT LTIMR+0
MVI A,1
STA LMBSY
RET
SFMSS: DCX H
MOV A,L
OUT FTIMR+1
MOV A,H
OUT FTIMR+1
;PAGE 0.9
MVI A,3584 AND 0FFH
OUT FTIMR+0
MVI A,3584 SHR 8
OUT FTIMR+0
MVI A,1
STA FMBSY
RET
DMD: MVI A,0FFH
OUT DISPL
LDAX D
ADD M
MOV B,A
PUSH H
CALL DCS
POP D
MVI A,37
SUB B
MOV B,A
JMP Z91
SMD: MVI B,38
Z91: MVI C,6
MVI A,0FFH
;PAGE 0.10
Z86: OUT DISPL
DCR C
SHLD 0
JNZ Z86
DCR B
JNZ Z91
CALL DCS
RET
DCS: XCHG
MOV C,M
Z87: INX H
MOV A,M
PUSH H
CALL DC
POP H
DCR C
JNZ Z87
RET
DC: CPI 61H
JC Z141B
CPI 7BH
JNC Z141B
SUI 61H-'A'
Z141B: LXI H,DCG
SUI ' '
RC
CPI 'Z'+1-' '
RNC
MOV E,A
MVI D,0
DAD D
;PAGE 0.11
DAD D
DAD D
DAD D
DAD D
MVI D,5
Z89: MOV A,M
OUT DISPL
INX H
DCR D
JNZ Z89
MVI A,0FFH
OUT DISPL
RET
BTAD: PUSH H
MOV B,D
MOV C,E
LXI D,0
LXI H,1
Z106: MOV A,B
RAR
MOV B,A
MOV A,C
RAR
MOV C,A
JNZ Z107 ; (I think should be JNC)
MOV A,E
ADD L
DAA
MOV E,A
MOV A,D
ADC H
DAA
MOV D,A
Z107: MVI A,68H
CMP L
;PAGE 0.12
JZ Z108
MOV A,L
ADD L
DAA
MOV L,A
MOV A,H
ADC H
DAA
MOV H,A
JMP Z106
Z108: POP H
MVI B,2
Z140: MOV A,D
RRC
RRC
RRC
RRC
CALL CAC
MOV A,D
CALL CAC
MOV D,E
DCR B
JNZ Z140
RET
BCDTB: PUSH H
LXI H,0
Z92: XTHL
MOV A,M
INX H
XTHL
DAD H
MOV D,H
MOV E,L
DAD H
DAD H
DAD D
;PAGE 0.13
ANI 0FH
MOV E,A
MVI D,0
DAD D
DCR B
JNZ Z92
POP D
RET
CCD: MVI B,224
MVI A,0FFH
Z100: OUT DISPL
DCR B
JNZ Z100
RET
KBCCT: DB 9
DB 0BH
DB 6
DB 5
DB 0CH
DB 3
DB 2
DB 0DH
DB 0EH
DB 0
DB 0FH
DB 1
DB 4
DB 7
DB 8
DB 0AH
D2MS: MVI B,130
Z112: LHLD 0
DCR B
JNZ Z112
RET
;PAGE 0.14
DCG: DS 5*59 ; CHARACTER GENERATOR TABLE NOT REPEATED HERE
DM1: DB 11,'FATAL ERROR'
;PAGE 3.2
ORG 4000H
Z94: CALL ERROR
NOP
EI
JMP LMINT
EI
JMP SDIS
EI
JMP FMINT
EI
JMP GPTIS
EI
JMP KBIS
EI
JMP RDI
Z95: CALL ERROR
NOP
START:
M00:
M01: MVI A,16H
OUT INT
MVI A,40H
OUT INT+1
MVI A,10000001B
OUT INT+1
MVI A,0FFH
OUT BRT1
OUT BRT2
CALL IRI
LXI H,011BH
;PAGE 3.3
SHLD LTS
M02: LXI D,DM2
CALL SMD
M23: SUB A
STA KBLC
M06: LDA KBLC
ORA A
JZ M06
M08: LDA ICR
ORA A
MVI B,0DH
JZ M31
MVI B,06H
M31: LDA KBIB
CMP B
JC M10
M09: LXI D,DM10
M38: CALL NFE
JMP M24
M10: RLC
MOV L,A
MVI H,0
LXI D,CBT
DAD D
MOV E,M
INX H
MOV D,M
XCHG
LXI D,M24
PUSH D
PCHL
M24: LXI H,MDM
MOV A,M
ORA A
JZ M02
MVI M,0
JMP M23
CBT: DW DNML
DW OJ
;PAGE 3.4
DW CFS
DW CE
DW COS
DW RFF
DW CIS
DW CBR
DW FA
DW ID
DW CD
DW WP
DW MM
CE: LXI D,DM9
CALL SMD
LHLD REV
XCHG
LXI H,BTS4
CALL BTAD
MVI A,4
LXI D,BTS3
STAX D
CALL DCS
MVI A,'-'
CALL DC
SUB A
STA KBLC
MVI B,4
CALL RDKC
CALL D1S
MVI B,4
LXI H,KBIB
CALL BCDTB
P10: LXI D,3000
CALL C2W2
JNC P11
P12: LXI D,DM10
P13: CALL NFE
RET
;PAGE 3.5
P11: SHLD REV
RET
CFS: LXI D,DM11
CALL SMD
LDA FW
MOV E,A
MVI D,0
LXI H,BTS3
CALL BTAD
LXI D,BTS4
MVI A,2
STAX D
CALL DCS
MVI A,'-'
CALL DC
SUB A
STA KBLC
MVI B,2
CALL RDKC
CALL D1S
MVI B,2
LXI H,KBIB
CALL BCDTB
P15: MOV A,L
CPI 4
JC P16
CPI 17
JNC P16
P18: STA FW
MOV L,A
MVI H,0
DAD H
DAD H
DAD H
DAD H
LXI D,0A6ABH
;PAGE 3.6
CALL M2B2
MOV H,L
MOV L,D
LXI D,-1000
DAD D
SHLD LILA
LXI D,DM12
CALL SMD
LDA FL
MOV E,A
MVI D,0
LXI H,BTS3
CALL BTAD
LXI D,BTS4
MVI A,2
STAX D
CALL DCS
MVI A,'-'
CALL DC
SUB A
STA KBLC
MVI B,2
CALL RDKC
CALL D1S
MVI B,2
LXI H,KBIB
CALL BCDTB
P19: MOV A,L
CPI 5
JC P21
CPI 21
JNC P21
P20: STA FL
MOV L,A
MVI H,0
DAD H
DAD H
DAD H
DAD H
LXI D,484AH
CALL M2B2
MOV H,L
;PAGE 3.7
MOV L,D
LXI D,-(108*16)
DAD D
SHLD LIFLA
RET
P21: LXI D,DM10
P22: CALL NFE
RET
P16: LXI D,DM10
P17: CALL NFE
RET
COS: LXI D,DM14
CALL SMD
LDA ROS
ADI '0'
CALL DC
MVI A,'-'
CALL DC
SUB A
STA KBLC
MVI B,1
CALL RDKC
CALL D1S
LDA KBIB
ANI 0FH
R06: CPI 3
JNC R08
R07: STA ROS
RET
R08: LXI D,DM10
R09: CALL NFE
;PAGE 3.8
RET
DNML: LDA REE
ORA A
RNZ
U45: CALL CCD
MVI A,1
STA MDM
STA ICR
U01:
U02: CALL SSPP
CALL FIB
LHLD IBLP
XCHG
LHLD IBRP
CALL C2W2
RZ
U04: MOV A,M
CPI 81H
JZ U05
CPI 0DH
JZ U06
U07: CALL DC
CALL IIBRP
JMP U02
U05: SUB A
STA MDM
RET
U06: CALL IIBRP
LHLD IBRP
;PAGE 3.9
SHLD BILP
RET
RFF: CALL CCD
MVI A,1
STA ICR
LHLD LBLP
MVI M,130
CALL ILBP
SHLD LBLP
LXI H,0
SHLD CIV
SHLD NIV
LDA REE
ORA A
JZ Z93
LHLD LFV
Z93: SHLD NFL
SHLD IFLEV
RET
OJ: LXI D,DM22
CALL SMD
LDA ROS
MOV B,A
W69: MOV A,B
ORA A
JZ W70
LXI H,ZBB
DCR A
;PAGE 3.10
JZ W71
LXI H,TZBB
W71: MOV E,M
INX H
MOV D,M
LHLD REV
PUSH B
CALL M2B2
POP B
LXI D,895
CALL C2W2
MOV A,B
DCR B
JC W69
W70: STA OS
CALL SSPP
SUB A
STA ECF
INR A
STA ICR
W01: LDA REE
ORA A
JNZ W57
W02: LXI H,FM
LXI B,280+256
MVI A,0FFH
W75: MOV M,A
INX H
DCR C
JNZ W75
DCR B
JNZ W75
SUB A
STA FMLF
SUB A
STA RA1A
STA RA2A
LXI H,CRT
SHLD BRP
SHLD ERP
LXI H,RCAT
SHLD BRCAT
SHLD ERCAT
;PAGE 3.11
LXI H,RCDT
LXI D,512
W88: MOV M,A
INX H
DCR E
JNZ W88
DCR D
JNZ W88
LXI H,CTLT
LXI D,(128*6)
W89: MOV M,A
INX H
DCR E
JNZ W89
DCR D
JNZ W89
W03: MVI A,1
STA EL1
CALL FIB
W04: LDA ECF
ORA A
JNZ W72
W06: LHLD IBRP
MOV A,M
CPI 81H
JZ W73
W08: SUB A
STA EL1
W73: CALL IIBRP
W72: LDA EL1
ORA A
JZ W03
W15: LDA ECF
ORA A
JNZ W57
W12: SUB A
STA EL1
CALL FIB
W13: LDA ECF
;PAGE 3.12
ORA A
JZ W10
W09: MVI A,1
STA EL1
JMP W52
W10: LDA SIL
ORA A
JZ W19
W11: LHLD IBRP
MOV A,M
CPI 0DH
JZ W14
CPI 02
JNZ W46
W17: MVI A,1
STA ECF
LXI D,DM23
W33: CALL NFE
JMP W46
W14: SUB A
STA SIL
JMP W46
W19: LHLD IBRP
MOV A,M
CPI ' '
JZ W20
SUI '0'
JC W74
CPI 10
JC W32
W74: CPI 0DH-'0'
JZ W34
CPI 82H-'0'
JNZ W46
W44: MVI A,1
;PAGE 3.13
STA EL1
JMP W46
W20: LDA NHC
ORA A
JZ W46
W21: MOV B,A
LXI H,NHB
CALL BCDTB
LXI D,FMLF
LDAX D
RAR
JNC W30
W22: RAR
JNC W29
W23: RAR
JC W85
W25: LXI H,NHB
MVI B,2
CALL BCDTB
DAD H
DAD H
DAD H
W26: LDA NHB+2
ORA A
JZ W28
W76: LXI B,0004H
DAD B
W28: SHLD MLSPS
MVI A,00000111B
STAX D
JMP W85
W30: MOV A,L
STA MLFS
MVI A,00000001B
STAX D
W85: SUB A
;PAGE 3.14
STA NHC
JMP W46
JMP W46
W29: SHLD MLTFN
MVI A,00000011B
STAX D
JMP W85
W32: MOV B,A
LXI H,NHC
MOV A,M
CPI 4
JZ W46
INR M
LXI H,NHB
MOV E,A
MVI D,0
DAD D
MOV M,B
JMP W46
W34: SUB A
STA FMLF
INR A
STA SIL
LHLD IBRP
SHLD BILP
LDA IS
STA MLWF
W35: MVI A,1
STA EL2
LDA MLWF
STA DC1+2
LXI H,DC1
CALL SDC
W36: LDA OKWD
ORA A
JZ W39
W37: MVI A,1
;PAGE 3.15
STA ECF
LXI D,DM7
LDA DISC
ADI '0'
STA DM7V
W38: CALL NFE
JMP W47
W39: LHLD 8003H
XCHG
LXI H,2020H
MOV A,D
SUB M
JNZ W37
DCX H
MOV A,E
SUB M
JNZ W37
LHLD 8001H
LXI D,8003H
DAD D
LXI D,8005H
W78: PUSH H
PUSH D
LHLD MLTFN
LDAX D
CMP L
JNZ W79
INX D
LDAX D
CMP H
JNZ W79
LHLD MLSPS
INX D
LDAX D
CMP L
JNZ W79
INX D
LDAX D
CMP H
JZ W40
W79: POP D
LXI H,9
DAD D
XCHG
POP H
CALL C2W2
JC W78
;PAGE 3.16
JMP W41
W40: POP D
POP H
LHLD MLFS
MVI H,0
LXI B,FM
DAD H
DAD H
DAD H
DAD B
SHLD IFS
MVI B,8
CALL MDDHD
JMP W47
W41: LXI H,MLWF
LDA NAD
CMP M
JZ W43
W42: INR M
SUB A
STA EL2
JMP W47
W43: MVI A,1
STA ECF
LDA MLFS
MOV E,A
MVI D,0
LXI H,NHB
CALL BTAD
LHLD NHB+2
SHLD DM3+13
LHLD MLTFN
XCHG
LXI H,DM3+16
CALL BTAD
LHLD MLSPS
MVI B,3
CALL SHLR
MVI A,'0'
JNC W80
MVI A,'5'
W80: STA DM3+24
;PAGE 3.17
XCHG
LXI H,NHB
CALL BTAD
LHLD NHB+2
SHLD DM3+21
LXI D,DM3
W84: CALL NFE
W47: LDA ECF
ORA A
JNZ W46
W49: LDA EL2
ORA A
JZ W35
W46: CALL IIBRP
W52: LDA ECF
ORA A
JNZ W57
W54: LDA EL1
ORA A
JZ W12
W57: LDA ECF
ORA A
JNZ W60
W59: CALL COF
W60: LDA ECF
ORA A
JNZ W66
W62: LDA JDD
ORA A
JZ W01
W66: LDA REE
ORA A
JNZ W81
W68: LXI H,011BH
SHLD LTS
LXI H,IB
SHLD IBRP
SHLD IBLP
;PAGE 3.18
SHLD BILP
W81: LHLD LBLP
XCHG
LHLD OLCP
CALL C2W2
JNZ W81
RET
COF: SUB A
STA REE
STA JDD
LHLD LBLP
SHLD WLBLP
LHLD IBRP
SHLD BILP
X02: SUB A
MVI B,11
LXI H,ICS
X20: MOV M,A
INX H
DCR B
JNZ X20
LHLD BILP
SHLD IBRP
LHLD IFLEV
SHLD WFL
LHLD IFS
SHLD WF
X03: CALL FIB
LHLD WLBLP
CALL ILBP
CALL WRLB
LDA ECF
ORA A
JNZ X09
;PAGE 3.19
X05: LHLD IBRP
MOV E,M
LXI H,ICCT
MVI D,0
DAD D
MOV A,M
ORA A
JP X07
X06: CALL ECC
JMP X08
X07: CALL ENCC
X08: CALL IIBRP
X09: LDA ECF
ORA A
JNZ X14
X11: LDA ILD
ORA A
JZ X03
X14: LDA ECF
ORA A
JNZ X19
X16: LDA JD
ORA A
JZ X02
X19: LHLD LBLP
XCHG
LHLD OLCP
CALL C2W2
JNZ X19
RET
;PAGE 3.20
ECC: CPI 90H
JC Y49
CPI 0A4H
JC Y01
Y49: ANI 7FH
RLC
MOV L,A
MVI H,0
LXI D,CCBT
DAD D
MOV A,M
INX H
MOV H,M
MOV L,A
PCHL
Y01: SUI 90H
MOV L,A
MVI H,0
LXI D,CST
DAD D
PUSH H
LHLD WF
LXI D,006FH
CALL C2W2
JNC Y50
Y02: MVI A,1
STA SIC
Y50: POP H
MOV A,M
CALL ENCC
RET
Y04: LHLD IBRP
INX H
MOV E,M
LHLD ARU
MVI D,0
DAD D
SHLD ARU
;PAGE 3.21
RET
Y05: LHLD IBRP
INR H
MOV E,M
LHLD AP
MVI D,0
DAD D
SHLD AP
RET
Y06: LDA WLS
ORA A
JZ Y11
Y07: CALL LFLB
LHLD WLBLP
CALL ILBP
CALL WRLB
Y51: CALL CTU
SHLD WLL
PUSH H
LHLD SFL
CALL CPFS
LXI D,109
DAD D
XCHG
LHLD LBLP
INX H
INX H
INX H
MOV M,E
LHLD WLBLP
MVI M,129
INX H
MOV M,D
INX H
POP D
MOV M,E
INX H
MOV M,D
CALL ILBP
;PAGE 3.22
SHLD WLBLP
LHLD LBLP
INX H
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
XCHG
LHLD LLC
XCHG
CALL C2W2
JNC Y52
Y23: SHLD LLC
XCHG
LHLD LILA
XCHG
CALL C2W2
JNC Y52
Y24: MVI A,1
STA ECF
STA REE
LXI D,DM24
Y25: CALL NFE
Y52: LDA ECF
ORA A
JNZ Y11
Y54: LHLD WLBLP
SHLD LBLP
SUB A
STA HRL
Y11: LDA ICS
ORA A
JZ Y13
Y12: LHLD BILP
DCX H
DCX H
SHLD IBRP
;PAGE 3.23
MVI A,1
STA ILD
RET
Y13: MVI A,1
STA ILD
LDA HRS
ORA A
JZ Y15
Y14: MVI A,1
STA HRL
RET
Y15: CALL IIBRP
LHLD IBRP
SHLD BILP
LHLD NFL
SHLD IFLEV
LHLD WF
SHLD IFS
LHLD NIV
SHLD CIV
RET
Y17: LHLD IBRP
INX H
MOV A,M
STA LFV
RET
Y18: LHLD IBRP
INX H
MOV H,M
LDA LFV
MOV L,A
SHLD LFV
XCHG
;PAGE 3.24
LHLD WFL
MOV A,D
ORA A
JM Y20
Y19: DAD D
JMP Y28
Y20: ANI 7FH
MOV D,A
CALL S2F2
Y28: SHLD WFL
XCHG
LHLD LIFLA
XCHG
CALL C2W2
JNC Y30
Y29: LHLD LLC
XCHG
LHLD SOV
DAD D
SHLD NIV
LHLD LFV
MOV A,H
ANI 7FH
MOV H,A
SHLD NFL
RET
Y30: LHLD WFL
SHLD NFL
RET
Y31: LHLD IBRP
INX H
MOV A,M
STA NIV
RET
;PAGE 3.25
Y32: LHLD IBRP
INX H
MOV H,M
LDA NIV
MOV L,A
XCHG
LXI H,0
CALL C2W2
JZ Y64
Y63: LHLD CIV
DAD D
Y64: SHLD CIV
SHLD NIV
RET
Y33: CALL CTU
SHLD WLL
LXI H,0
SHLD AP
SHLD ARU
LHLD IBRP
INX H
MOV L,M
MOV B,L
MVI H,0
DAD H
DAD H
DAD H
LXI D,FM
DAD D
MOV A,M
CPI 0FFH
JNZ Y36
Y34: MVI A,1
STA ECF
MOV E,B
MVI D,0
LXI H,NHB
CALL BTAD
LHLD NHB+2
SHLD DM25+18
;PAGE 3.26
LXI D,DM25
Y35: CALL NFE
RET
Y36: LDA WLS
ORA A
JZ Y58
Y57: PUSH H
CALL LFLB
POP H
SHLD WF
CALL LFLB
RET
Y58: SHLD WF
RET
Y37: CALL IIBRP
CALL FIB
LHLD IBRP
MOV A,M
CPI 0FFH
JNZ Y55
Y38: MVI A,1
STA JDD
Y55: MVI A,1
STA ILD
STA JD
RET
Y40: LDA HRL
ORA A
JNZ Y42
Y41: MVI A,1
STA HRS
;PAGE 3.27
RET
Y42: LHLD WFL
PUSH H
CALL SWL
POP D
LHLD SFL
CALL C2W2
JNZ Y43
Y56: CALL CTU
SHLD RSP
LHLD IBRP
MVI M,20H
INX H
MOV A,M
STA HRH
MVI M,0
MVI A,1
STA RS
RET
Y43: MVI A,1
STA HRS
RET
Y44: LXI H,RS
MOV A,M
ORA A
RZ
Y46: MVI M,0
LHLD IBRP
MVI M,' '
INX H
MOV D,M
MVI M,0
LDA HRH
MOV E,A
LXI H,(18*16)+1
CALL C2W2
;PAGE 3.28
JC Y61
MVI A,1
STA ECF
LXI D,DM26
Y60: CALL NFE
RET
Y61: LHLD WLBLP
MVI M,133
INX H
MOV M,E
INX H
MOV M,D
INX H
XCHG
LHLD RSP
XCHG
MOV M,E
CALL ILBP
PUSH D
CALL WRLB
POP D
MVI M,134
INX H
MOV M,D
PUSH H
CALL CTU
XCHG
POP H
INX H
MOV M,E
INX H
MOV M,D
CALL ILBP
SHLD WLBLP
RET
Y59: LXI H,0
SHLD WFL
SHLD NFL
RET
;PAGE 3.29
Y47: MVI A,1
STA ECF
LXI D,DM26
Y48: CALL NFE
RET
ENCC: MOV B,A
U41: LHLD WFL
LXI D,SIC
LDAX D
ORA A
JZ U11
U09: SUB A
STAX D
LXI D,-(4*8)
DAD D
U11: PUSH H
PUSH B
CALL SWL
POP B
POP D
LHLD SFL
CALL C2W2
JNZ U13
LHLD WF
INX H
INX H
MOV E,M
INX H
MOV D,M
LXI H,(18*8)+1
LDA DSL
ORA A
JZ U36
;PAGE 3.30
U33: CALL C2W2
JNC U12
U35: MVI A,1
STA ICS
JMP U14
U36: CALL C2W2
JC U12
U37: MVI A,1
STA ICS
JMP U14
U12: PUSH B
CALL CTU
XCHG
LHLD WLBLP
POP B
MOV M,B
INX H
MVI M,0
INX H
MOV M,E
INX H
MOV M,D
CALL ILBP
SHLD WLBLP
LHLD IBRP
MVI M,' '
JMP U14
U13: MVI A,1
STA ICS
U14: LHLD IBRP
INX H
MOV E,M
LHLD ARU
MVI D,0
DAD D
SHLD ARU
RET
;PAGE 3.31
SWL: LXI D,WLS
LDAX D
ORA A
RNZ
U17: MVI A,1
STAX D
SHLD SFL
LHLD CIV
CALL CPMU
PUSH H
CALL CTU
POP D
DAD D
XCHG
LHLD WLBLP
MVI M,80H
INX H
MOV M,E
INX H
MOV M,D
CALL ILBP
SHLD WLBLP
CALL ILBP
CALL WRLB
LXI H,0
SHLD ARU
SHLD AP
SHLD WLL
U39: LHLD WF
INX H
INX H
MOV E,M
INX H
MOV D,M
LXI H,18*8
XCHG
CALL C2W2
MVI A,1
;PAGE 3.32
JC U40
SUB A
U40: STA DSL
CALL LFLB
CALL ILBP
CALL WRLB
RET
CPMU: LXI D,1001001110001110B
CALL M2B2
DAD H
DAD H
MOV A,D
RLC
RLC
ANI 00000011B
ORA L
MOV L,A
RET
LFLB: LHLD WLBLP
MVI M,131
INX H
LDA OS
MOV M,A
INX H
XCHG
LHLD WF
MOV A,M
STAX D
INX H
INX D
MOV A,M
;PAGE 3.33
STAX D
XCHG
INX D
PUSH D
CALL ILBP
CALL WRLB
MVI M,132
INX H
POP D
PUSH H
LDAX D
MOV L,A
INX D
LDAX D
MOV H,A
PUSH D
LXI D,18*8
CALL C2W2
POP D
LDA DSL
CMC
ACI 0
RAR
JC Z143
POP H
RET
Z143: DAD H
DAD H
DAD H
DAD H
DAD H
MOV B,H
MOV A,L
ANI 0F0H
MOV C,A
INX D
LDAX D
MOV L,A
INX D
LDAX D
MOV H,A
DAD H
DAD H
DAD H
DAD H
DAD H
XCHG
POP H
MOV M,D
INX H
;PAGE 3.34
MOV A,E
RRC
RRC
RRC
RRC
ANI 0FH
ORA C
MOV M,A
INX H
MOV M,B
CALL ILBP
CALL WRLB
SHLD WLBLP
RET
CTU: LHLD AP
CALL CPMU
PUSH H
LHLD WF
INX H
INX H
INX H
INX H
MOV E,M
INX H
MOV D,M
LXI H,8329H
CALL M2B2
PUSH H
LHLD ARU
PUSH H
CALL M2B2
POP D
XTHL
CALL M2B2
MOV H,L
MOV L,D
DAD H
DAD H
;PAGE 3.35
DAD H
DAD H
MOV A,E
RRC
RRC
RRC
RRC
ANI 0FH
ORA L
MOV L,A
POP D
XCHG
MVI B,4
CALL SHLR
DAD D
POP D
DAD D
XCHG
LHLD WLL
DAD D
RET
FIB: LDA IS
ORA A
JZ IRD
LHLD IBRP
XCHG
LHLD IBLP
CALL C2W2
RNZ
U20: LXI H,LNS
MVI M,7
LDA LTS
CPI 76
JNZ U25
U21: LDA LSS
CPI 21
JC U25
;PAGE 3.36
U22: MOV B,A
MVI A,27
SUB B
MOV M,A
U25: PUSH H
LHLD IBLP
SHLD LDCA
XCHG
LHLD BILP
CALL C2W2
JC U42
LXI H,IB+(7*128)
U42: CALL S2F2
DAD H
MOV A,H
POP H
ORA A
RZ
U46: CMP M
JNC U43
MOV M,A
U43: LXI H,LCW
MVI A,1
MOV M,A
DCX H
MVI M,8
DCX H
MOV M,A
SUB A
STA LVSS
U28: LDA LPDR
RRC
RRC
JNC U28
LDA LOKW
ORA A
JZ U27
U26: MVI A,1
STA ECF
LHLD IBLP
SHLD IBRP
MVI A,'0'
STA DM7V
LXI D,DM7
;PAGE 3.37
U29: CALL NFE
RET
U27: LHLD LDCA
SHLD IBLP
RET
SSPP: LXI H,PPS
MOV A,M
ORA A
RNZ
MVI M,1
CALL SPP
RET
IIBRP: LHLD IBRP
INX H
INX H
LXI D,IB+(7*128)-1
CALL C2W2
JNC Z120
LXI H,IB
Z120: SHLD IBRP
LHLD IBLP
LXI D,IB+(7*128)
CALL C2W2
RNZ
LXI H,IB
SHLD IBLP
RET
;PAGE 3.38
SDC: MOV A,M
STA VARSE
INX H
XCHG
LXI H,COMWD
MVI B,7
CALL MDDHD
SDC1: MVI A,8
STA OKWD
CALL WUDCD
RET
PDDHD: LDAX D
MOV M,A
INX D
INX H
DCR C
JNZ PDDHD
DCR B
JNZ PDDHD
RET
WUDCD: LDA OKWD
CPI 8
JZ WUDCD
RET
;PAGE 3.39
RDKC: LDA KBLC
MOV E,A
MVI D,0
Z104: LDA KBLC
CMP E
JZ Z104
LXI H,KBIB
DAD D
MOV A,M
PUSH B
CALL CDTAC
CALL DC
POP B
DCR B
JNZ RDKC
RET
CPFS: LXI D,0B111H
CALL M2B2
DAD H
MOV A,D
RLC
ANI 1
ORA L
MOV L,A
RET
WRLB: XCHG
Z142: LHLD OLBP
CALL C2W2
JZ Z142
XCHG
RET
;PAGE 3.40
D1S: LXI D,4000H
Z105: LHLD 0
DCR E
JNZ Z105
DCR D
JNZ Z105
RET
CCBT: DW Y47
DW Y06
DW Y47
DW Y37
DW Y04
DW Y05
DW Y17
DW Y18
DW Y31
DW Y32
DW Y33
DW Y40
DW Y44
DW Y59
DW Y47
;PAGE 2.1
RDC: LXI H,PPA
MOV A,M
RAR
JC J07
J01: MVI A,0BH
OUT INT
IN INT
MOV B,A
ANI 00010000B
JZ J07
J02: MOV A,B
ANI 00000010B
JNZ J07
J04: MVI M,1
MVI A,20H
DI
OUT INT
EI
JMP K01
J07: POP H
POP D
;PAGE 2.2
POP B
MVI A,20H
DI
OUT INT
POP PSW
EI
RET
GPTIS:
B15: PUSH PSW
PUSH B
PUSH D
PUSH H
LDA TOO
ANI 00000010B
JZ B27
B16: LDA BLS
ORI 00001000B
STA BLS
OUT BTLCH
SUB A
STA TOO
B27: SUB A
STA FSCD
STA GPTB
B20: JMP RDC
;PAGE 2.3
LENS1: LDA LMBSY
ORA A
Z66: CNZ ERROR
MOV A,H
ORA A
JNZ OVER3
MOV A,L
CPI 04H
JNC OVER3
CPI 0
RZ
CPI 01H
Z65: CZ ERROR
XRA A
STA ASTEP
SHLD LSTEP
JMP LNSJ2
OVER3: MOV A,L
ANI 00000011B
CPI 01H
JZ LNS35
CPI 0H
JZ LNS30
PUSH H
MOV L,A
MVI H,0H
SHLD LSTEP
POP H
JMP LNSJ4
LNS30: PUSH H
LXI H,04H
SHLD LSTEP
POP H
JMP LNSJ3
LNS35: PUSH H
LXI H,05H
SHLD LSTEP
POP H
LNSJ3: DCX H
DCX H
;PAGE 2.4
DCX H
DCX H
LNSJ4: MVI C,2H
LNSJ5: XRA A
MOV A,H
RAR
MOV H,A
MOV A,L
RAR
MOV L,A
DCR C
JNZ LNSJ5
STA ASTEP
MOV A,H
ORA A
LDA ACLIM
MOV C,A
JNZ LNSJ6
MOV A,L
CMP C
JC LNSJ2
LNSJ6: MOV A,L
SUB C
MOV L,A
MOV A,H
SBI 0H
MOV H,A
PUSH H
POP D
DAD D
DAD D
DAD D
XCHG
LHLD LSTEP
DAD D
SHLD LSTEP
LDA ACLIM
STA ASTEP
LNSJ2: LHLD LSTEP
DCX H
SHLD LSTEP
LOAD1: LDA ASTEP
ORA A
JZ LOAD2
DCR A
LOAD2: STA LACNT
LXI H,TABL1+2
SHLD TABFP
MVI A,0FFH
STA ACCEL
;PAGE 2.5
STA LMBSY
MVI A,70H
OUT LTIMR+3
MVI A,01H
OUT LTIMR+1
SUB A
OUT LTIMR+1
MVI A,34H
OUT LTIMR+1
LHLD TABL1
MOV A,L
OUT LTIMR+0
MOV A,H
OUT LTIMR+0
RET
LMINT: PUSH PSW
PUSH D
PUSH H
LDA ACCEL
RAR
JNC LNS24
LDA LACNT
ORA A
JZ LNS26
LHLD TABFP
MOV E,M
INX H
MOV D,M
INX H
SHLD TABFP
LXI H,LACNT
DCR M
;PAGE 2.6
LNS22: MVI A,70H
OUT LTIMR+3
MVI A,01H
OUT LTIMR+1
SUB A
OUT LTIMR+1
MOV A,E
OUT LTIMR+0
MOV A,D
OUT LTIMR+0
LNS28: POP H
POP D
MVI A,20H
DI
OUT INT
POP PSW
EI
RET
LNS26: STA ACCEL
LHLD LSTEP
CMP L
JNZ LNS31
CMP H
JZ LNS24
LNS31: LDA TOO
RAR
JNC Z00
MVI A,1
STA GPTB
INR A
STA TOO
LHLD TOOD
MOV A,L
OUT GTIMR
MOV A,H
OUT GTIMR
Z00: MVI A,70H
OUT LTIMR+3
LHLD LSTEP
MOV A,L
OUT LTIMR+1
MOV A,H
OUT LTIMR+1
LDA ASTEP
LXI H,ACLIM
CMP M
JNZ LNS28
;PAGE 2.7
LHLD LTERM
MOV A,L
OUT LTIMR+0
MOV A,H
OUT LTIMR+0
JMP LNS28
LNS24: LXI H,BLS
MOV A,M
ANI 11110111B
MOV M,A
OUT BTLCH
LXI H,MSLS
MOV A,M
ANI 10001111B
MOV M,A
OUT MSLCH
LXI H,LPIP
MOV A,M
SUI 3
JNZ Z72
MOV M,A
Z72: LXI H,LACNT
LDA ASTEP
SUB M
JZ LNS25
INR M
LHLD TABFP
DCX H
MOV D,M
DCX H
MOV E,M
SHLD TABFP
JMP LNS22
LNS25: SUB A
STA LMBSY
MVI A,34H
OUT LTIMR+3
MVI A,70H
OUT LTIMR+3
JMP LNS28
;PAGE 2.8
TABL1: DW 3584
DW 3584
DW 2987
DW 2622
DW 2369
DW 2178
DW 2029
DW 1906
DW 1804
DW 1717
DW 1642
DW 1576
DW 1517
DW 1465
DW 1417
DW 1374
DW 1335
DW 1299
DW 1266
DW 1235
DW 1206
DW 1179
DW 1154
DW 1131
DW 1109
DW 1088
DW 1068
DW 1050
DW 1032
DW 1015
DW 999
DW 984
DW 968
DW 955
DW 942
DW 929
DW 917
DW 905
DW 893
DW 883
DW 872
DW 862
DW 852
DW 842
DW 833
DW 824
DW 816
DW 807
DW 799
DW 791
;PAGE 2.9
DW 783
DW 776
DW 769
DW 762
DW 755
DW 748
DW 742
DW 736
DW 729
DW 723
DW 718
DW 712
DW 706
DW 701
DW 695
DW 690
DW 685
DW 680
DW 675
DW 671
DW 666
DW 661
DW 657
DW 652
DW 648
DW 644
DW 640
DW 636
DW 632
DW 628
DW 624
DW 620
DW 617
DW 613
DW 609
DW 606
DW 602
DW 599
DW 596
;PAGE 2.10
FEED1: LDA FMBSY
ORA A
Z68: CNZ ERROR
MOV A,H
ORA A
JNZ FOVR3
MOV A,L
CPI 04H
JNC FOVR3
CPI 0H
RZ
CPI 01H
Z69: CZ ERROR
SHLD FSTEP
XRA A
STA FASTP
JMP FEDJ2
FOVR3: MOV A,L
ANI 00000011B
CPI 01H
JZ FED35
CPI 0H
JZ FED30
PUSH H
MOV L,A
MVI H,0H
SHLD FSTEP
POP H
JMP FEDJ4
FED30: PUSH H
LXI H,04H
SHLD FSTEP
POP H
JMP FEDJ3
FED35: PUSH H
LXI H,05H
SHLD FSTEP
POP H
FEDJ3: DCX H
DCX H
;PAGE 2.11
DCX H
DCX H
FEDJ4: MVI C,2H
FEDJ5: XRA A
MOV A,H
RAR
MOV H,A
MOV A,L
RAR
MOV L,A
DCR C
JNZ FEDJ5
STA FASTP
MOV A,H
ORA A
LDA FACLM
MOV C,A
JNZ FEDJ6
MOV A,L
CMP C
JC FEDJ2
FEDJ6: MOV A,L
SUB C
MOV L,A
MOV A,H
SBI 0H
MOV H,A
PUSH H
POP D
DAD D
DAD D
DAD D
XCHG
LHLD FSTEP
DAD D
SHLD FSTEP
LDA FACLM
STA FASTP
FEDJ2: LHLD FSTEP
DCX H
SHLD FSTEP
FLOD1: LDA FASTP
ORA A
JZ FLOD2
DCR A
FLOD2: STA FACNT
LXI H,TABL1+2
SHLD FTABP
MVI A,0FFH
STA FACEL
;PAGE 2.12
STA FMBSY
MVI A,70H
OUT FTIMR+3
MVI A,01H
OUT FTIMR+1
MVI A,00H
OUT FTIMR+1
MVI A,34H
OUT FTIMR+3
LHLD TABL1
MOV A,L
OUT FTIMR+0
MOV A,H
OUT FTIMR+0
RET
FMINT: PUSH PSW
PUSH D
PUSH H
LDA FACEL
RAR
JNC FED24
LDA FACNT
ORA A
JZ FED26
LHLD FTABP
MOV E,M
INX H
MOV D,M
INX H
SHLD FTABP
LXI H,FACNT
DCR M
FED22: MVI A,70H
OUT FTIMR+3
MVI A,01H
;PAGE 2.13
OUT FTIMR+1
SUB A
OUT FTIMR+1
MOV A,E
OUT FTIMR+0
MOV A,D
OUT FTIMR+0
FED28: POP H
POP D
DI
MVI A,20H
OUT INT
POP PSW
EI
RET
FED26: STA FACEL
LHLD FSTEP
CMP L
JNZ FED31
CMP H
JZ FED24
FED31: MVI A,70H
OUT FTIMR+3
LHLD FSTEP
MOV A,L
OUT FTIMR+1
MOV A,H
OUT FTIMR+1
LDA FASTP
LXI H,FACLM
CMP M
JNZ FED28
LHLD FTERM
MOV A,L
OUT FTIMR+0
MOV A,H
OUT FTIMR+0
JMP FED28
FED24: LXI H,FACNT
LDA FASTP
SUB M
JZ FED25
INR M
LHLD FTABP
DCX H
MOV D,M
DCX H
MOV E,M
SHLD FTABP
JMP FED22
;PAGE 2.14
FED25: SUB A
STA FMBSY
MVI A,34H
OUT FTIMR+3
MVI A,70H
OUT FTIMR+3
JMP FED28
GNC: LDA SLR
RAR
JC H01
G01: LHLD EOC2
XCHG
LHLD EOC1
CALL C2W2
JC G04
G02: XCHG
LHLD SCC
XCHG
CALL S2F2
MOV A,L
STA ISDIC
JMP G31
G04: LHLD SCC
XCHG
CALL S2F2
MOV A,L
STA ISDIC
G31: MOV A,H
ORA A
JZ G08
G06: MVI A,255
STA ISDIC
;PAGE 2.15
JMP G30
G08: LDA CCRS
STA TS1
G09: LXI H,0FFFFH
SHLD TS3
SUB A
STA TS2
LXI B,TS1
LDAX B
ORA A
JZ G18
RAR
JNC G32
MVI A,00000001B
STA TS2
LHLD CAN
SHLD TS3
LXI H,CAN
SHLD TS5
G32: LDAX B
ANI 00000010B
JZ G33
LHLD CAN+14
XCHG
LHLD TS3
CALL C2W2
JNC G33
XCHG
SHLD TS3
MVI A,00000010B
STA TS2
LXI H,CAN+14
SHLD TS5
G33: LDAX B
ANI 00000100B
JZ G34
LHLD CAN+28
XCHG
LHLD TS3
CALL C2W2
JNC G34
XCHG
SHLD TS3
LXI H,CAN+28
SHLD TS5
MVI A,00000100B
STA TS2
G34: LDAX B
;PAGE 2.16
ANI 00001000B
JZ G35
LHLD CAN+42
XCHG
LHLD TS3
CALL C2W2
JNC G35
XCHG
SHLD TS3
LXI H,CAN+42
SHLD TS5
MVI A,00001000B
STA TS2
G35: LHLD SCC
XCHG
LHLD ISDIC
MVI H,0
DAD D
INX H
XCHG
LHLD TS3
CALL C2W2
JC G14
JZ G42
G12: CALL DSCC
JMP G08
G14: DCX H
SHLD DCA+2
SUB A
STA TS2
LXI H,DCA
SHLD TS5
JMP G42
G18: LHLD SCC
XCHG
LHLD ISDIC
MVI H,0
DAD D
LXI D,3
DAD D
SHLD DCA+2
SUB A
;PAGE 2.17
STA TS2
LXI H,DCA
SHLD TS5
G42: LHLD SCC
XCHG
LHLD ISDIC
MVI H,0
DAD D
SHLD TS3
XCHG
LHLD EOC1
CALL C2W2
JNZ G25
G20: LHLD EOC2
CALL C2W2
JNZ G24
G22: CALL EC1
JMP G08
G24: LHLD C2DIA
SHLD TS7
CALL CCCBT
JNC G43
G47: LXI H,TS1
LDA TS2
CMA
ANA M
MOV M,A
JMP G09
G43: CALL EC1
JMP G30
G25: LHLD EOC2
CALL C2W2
G52: CNZ ERROR
G27: LHLD C1DIA
SHLD TS7
CALL CCCBT
JC G49
;PAGE 2.18
G50: CALL EC2
G30: LHLD SCC
INX H
SHLD SCC
JMP H31
G49: LXI H,TS1
LDA TS2
CMA
ANA M
MOV M,A
JMP G09
H01: LHLD EOC2
XCHG
LHLD EOC1
CALL C2W2
JNC H05
H03: XCHG
LHLD SCC
CALL S2F2
MOV A,L
STA ISDIC
JMP H32
H05: LHLD SCC
CALL S2F2
MOV A,L
STA ISDIC
H32: MOV A,H
ORA A
JZ H09
H07: MVI A,255
STA ISDIC
JMP H02
H09: LDA CCRS
STA TS1
H10: LXI H,0
SHLD TS3
;PAGE 2.19
SUB A
STA TS2
LXI B,TS1
LDAX B
ORA A
JZ H19
RAR
JNC H34
MVI A,00000001B
STA TS2
LHLD CAN+2
SHLD TS3
LXI H,CAN
SHLD TS5
H34: LDAX B
ANI 00000010B
JZ H35
LHLD TS3
XCHG
LHLD CAN+14+2
CALL C2W2
JNC H35
SHLD TS3
LXI H,CAN+14
SHLD TS5
MVI A,00000010B
STA TS2
H35: LDAX B
ANI 00000100B
JZ H36
LHLD TS3
XCHG
LHLD CAN+28+2
CALL C2W2
JNC H36
SHLD TS3
LXI H,CAN+28
SHLD TS5
MVI A,00000100B
STA TS2
H36: LDAX B
ANI 00001000B
JZ H37
LHLD TS3
XCHG
LHLD CAN+42+2
CALL C2W2
JNC H37
SHLD TS3
LXI H,CAN+42
;PAGE 2.20
SHLD TS5
MVI A,00001000B
STA TS2
H37: LHLD ISDIC
XCHG
LHLD SCC
MVI D,0
CALL S2F2
DCX H
XCHG
LHLD TS3
CALL C2W2
JZ H38
JNC H15
H13: CALL DSCC
JMP H09
H15: INX H
SHLD DCA
SUB A
STA TS2
LXI H,DCA
SHLD TS5
JMP H38
H19: LHLD ISDIC
XCHG
LHLD SCC
MVI D,0
CALL S2F2
LXI D,-3
DAD D
SHLD DCA
SUB A
STA TS2
LXI H,DCA
SHLD TS5
H38: LHLD ISDIC
XCHG
LHLD SCC
MVI D,0
CALL S2F2
SHLD TS3
;PAGE 2.21
XCHG
LHLD EOC1
CALL C2W2
JNZ H26
H21: LHLD EOC2
CALL C2W2
JNZ H25
H23: CALL EC1
JMP H09
H25: LHLD C2DIA
SHLD TS7
CALL CCCBT
JNC H39
H43: LXI H,TS1
LDA TS2
CMA
ANA M
MOV M,A
JMP H10
H39: CALL EC1
JMP H02
H26: LHLD EOC2
CALL C2W2
H29: CNZ ERROR
H27: LHLD C1DIA
SHLD TS7
CALL CCCBT
JC H45
H46: CALL EC2
H02: LHLD SCC
DCX H
SHLD SCC
H31: LHLD C1DIA
XCHG
;PAGE 2.22
LHLD C1XMD
LDAX D
MOV M,A
INX H
INX H
INX H
INX D
LDAX D
MOV M,A
INX D
LDAX D
OUT DMA
INX D
LDAX D
OUT DMA
INX D
LDAX D
OUT DMA+6
INX D
LDAX D
OUT DMA+7
RET
H45: LXI H,TS1
LDA TS1
CMA
ANA M
MOV M,A
JMP H10
DLB: DB 0FFH,0,0,0
DCA: DW 0
DW 0
DW DLB
DW 15
DB 07H
DB 0FFH
DW 13
DW DCHAR
DCHAR: DB 0
DB 0
DB 0F8H
DB 0FFH
DB 07H
DB 0FFH
;PAGE 2.23
DB 07H
DB 0FFH
DB 07H
DB 0
DB 0
DB 0
DB 0
DB 0C0H
DB 0
DB 0
DB 0
DB 0F8H
CCCBT: LHLD TS5
LXI D,6
DAD D
MOV E,M
INX H
MOV D,M
LHLD TS7
LXI B,-2
DAD B
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
LXI D,1021
CALL C2W2
RET
;PAGE 2.24
EC1: CALL DOCC
LHLD TS5
MVI B,7
LDA SLR
RAR
JC Z73
MVI B,5
INX H
INX H
Z73: MOV E,M
INX H
MOV D,M
XCHG
SHLD EOC1
MOV L,B
MVI H,0
DAD D
SHLD C1DIA
INX H
INX H
INX H
INX H
MOV E,M
INX H
MOV D,M
LXI H,6
DAD D
SHLD C1XMD
LXI B,C1CC
CALL ICCU
RET
ICCU: LXI H,CCR
LDAX B
CMA
ANA M
MOV M,A
;PAGE 2.25
LDA TS2
STAX B
CMA
LXI H,CCRS
ANA M
MOV M,A
RET
EC2: CALL DOCC
LHLD TS5
MVI B,7
LDA SLR
RAR
JC Z74
MVI B,5
INX H
INX H
Z74: MOV E,M
INX H
MOV D,M
XCHG
SHLD EOC2
MOV L,B
MVI H,0
DAD D
SHLD C2DIA
INX H
INX H
INX H
INX H
MOV E,M
INX H
MOV D,M
LXI H,6
DAD D
SHLD C2XMD
LXI B,C2CC
CALL ICCU
;PAGE 2.26
RET
DOCC: LHLD TS5
INX H
INX H
INX H
INX H
MOV E,M
INX H
MOV D,M
LDAX D
MOV B,A
INX D
LDAX D
ORI 10000000B
STAX D
RRC
ANI 10000000B
ORA B
MOV C,A
MVI B,0
LXI H,RCDT
DAD B
DAD B
INR A
RZ
DCR M
RET
;PAGE 2.27
DSCC: LHLD TS5
INX H
INX H
INX H
INX H
MOV E,M
INX H
MOV D,M
INX D
LDAX D
ORI 01000000B
STAX D
LXI D,TS2
LXI H,CCR
LDAX D
CMA
ANA M
MOV M,A
LXI H,CCRS
LDAX D
CMA
ANA M
MOV M,A
RET
MDDHD: LDAX D
MOV M,A
INX D
INX H
DCR B
JNZ MDDHD
RET
;PAGE 2.28
CDDHD: LDAX D
CMP M
RNZ
INX D
INX H
DCR B
JNZ CDDHD
RET
ARLBS: LHLD RLBSP
CALL ILBP
SHLD RLBSP
MVI A,1
STA PPB
RET
EAPWA: PUSH D
LXI D,EAD+79
;PAGE 2.29
CALL C2W2
JNC Z01
LXI H,EAD
Z01: POP D
RET
RCATW: PUSH D
LXI D,RCAT+(61*3)-1
CALL C2W2
JNC Z02
LXI H,RCAT
Z02: POP D
RET
RCS: LHLD BRCAT
XCHG
LHLD ERCAT
CALL C2W2
JZ J20
J27: LDAX D
MOV C,A
MVI B,0
LXI H,RCDT
DAD B
DAD B
MOV A,M
ORA A
JZ J18
J14: INX D
INX D
;PAGE 2.30
INX D
XCHG
CALL RCATW
MOV C,M
XCHG
LHLD ERCAT
CALL C2W2
JZ J20
MVI B,0
LXI H,RCDT
DAD B
DAD B
MOV A,M
ORA A
JNZ J14
J15: LHLD BRCAT
MOV B,M
LXI H,CAN+4
LDA CCR
RAR
JNC J21
CALL CCC
JZ J20
J21: LXI H,CAN+14+4
LDA CCR
ANI 00000010B
JZ J22
CALL CCC
JZ J20
J22: LXI H,CAN+28+4
LDA CCR
ANI 00000100B
JZ J23
CALL CCC
JZ J20
J23: LXI H,CAN+42+4
LDA CCR
ANI 00001000B
JZ J16
CALL CCC
JZ J20
J16: LHLD ERP
XCHG
PUSH D
LHLD BRP
INX H
MOV C,M
INX H
;PAGE 2.31
MOV B,M
DCX H
DCX H
XCHG
INX B
INX B
INX B
MOV A,C
ORA A
JZ J25
INR B
J25: CALL PDDHD
CALL RAWA
SHLD ERP
XCHG
CALL RAWA
SHLD BRP
LHLD BRCAT
MOV A,M
XTHL
XCHG
LHLD ERCAT
SHLD TS9
MOV M,A
MOV C,A
INX H
MOV M,E
INX H
MOV M,D
INX H
CALL RCATW
SHLD ERCAT
POP H
INX H
INX H
INX H
CALL RCATW
SHLD BRCAT
LXI H,RCDT
MVI B,0
DAD B
DAD B
INX H
LDA TS9
MOV M,A
MVI A,1
STA PPB
JMP J20
;PAGE 2.32
J18: LHLD BRP
INX H
MOV E,M
INX H
MOV D,M
DCX H
DCX H
INX D
INX D
INX D
DAD D
CALL RAWA
SHLD BRP
LXI H,CTLT
DAD B
DAD B
DAD B
MOV A,M
ANI 01111111B
MOV M,A
LHLD BRCAT
INX H
INX H
INX H
CALL RCATW
SHLD BRCAT
MVI A,1
STA PPB
J20: RET
CCC: MOV E,M
INX H
MOV D,M
LDAX D
MOV C,A
INX D
LDAX D
RRC
ANI 10000000B
ORA C
CMP B
RET
;PAGE 2.33
DS 1
CSPS: MOV B,M
INX H
MOV A,M
RRC
ANI 00000111B
MOV C,A
MOV A,B
RLC
RLC
RLC
MOV B,A
ANI 11111000B
ORA C
MOV C,A
MOV A,B
ANI 00000111B
MOV B,A
MOV A,M
RLC
RLC
RLC
ANI 00000111B
MOV E,A
INX H
MOV A,M
RLC
RLC
;PAGE 2.34
RLC
MOV D,A
ANI 11111000B
ORA E
MOV E,A
MOV A,D
ANI 00000111B
MOV D,A
RET
FRR: LHLD ERP
LXI D,CRT
CALL S2F2
PUSH H
LHLD BRP
CALL S2F2
POP D
CALL C2W2
JC Z03
LXI B,16*1024
DAD B
Z03: CALL S2F2
DCX H
RET
SHLR: ORA A
MOV A,H
;PAGE 2.35
RAR
MOV H,A
MOV A,L
RAR
MOV L,A
DCR B
JNZ SHLR
RET
D3B1: MVI E,17
MOV A,H
Z05: MOV H,A
MOV A,D
RAL
MOV D,A
MOV A,L
RAL
MOV L,A
DCR E
RZ
MOV A,H
RAL
JNC Z07
SUB B
STC
JMP Z05
Z07: SUB B
CMC
JC Z05
ADD B
ORA A
JMP Z05
;PAGE 2.36
CHDZ: MOV A,E
XRA L
ANI 11111100B
RNZ
MOV A,H
CMP D
RET
DLBP: DCX H
DCX H
DCX H
DCX H
MOV A,L
ANI 11111100B
MOV L,A
PUSH D
LXI D,LB-1
CALL C2W2
JC Z06
LXI H,LB+600H-4
Z06: POP D
RET
;PAGE 2.37
ILBP: INX H
INX H
INX H
INX H
MOV A,L
ANI 11111100B
MOV L,A
PUSH D
LXI D,LB+600H-1
CALL C2W2
JNC Z08
LXI H,LB
Z08: POP D
RET
C2W2: MOV A,D
CMP A
RNZ
MOV A,E
CMP L
RET
;PAGE 2.38
M2B2: MOV A,L
PUSH H
MVI C,2
Z09: MVI B,8
LXI H,0
Z10: DAD H
RAL
JNC Z11
DAD D
ACI 0
Z11: DCR B
JNZ Z10
DCR C
JZ Z12
POP B
PUSH H
MOV L,H
MOV H,A
PUSH H
MOV A,B
MVI C,1
JMP Z09
Z12: POP D
DAD D
ACI 0
POP D
MOV D,L
MOV L,H
MOV H,A
RET
S2F2: MOV A,L
SUB E
MOV L,A
MOV A,H
SBB D
MOV H,A
RET
;PAGE 2.39
RAWA: PUSH D
LXI D,CRT+(16*1024)-1
CALL C2W2
JNC Z13
LXI D,-(16*1024)
DAD D
POP D
RET
Z13: LXI D,CRT-1
CALL C2W2
JC Z35
LXI D,(16*124)
DAD D
Z35: POP D
RET
SFM: XCHG
LHLD FMP
CALL C2W2
JZ Z15
Z71: LXI B,BLS
JC Z16
Z36: XCHG
CALL S2F2
LXI D,1
CALL C2W2
JC Z17
;PAGE 2.40
Z37: LXI H,2
CALL SSD
JMP Z15
Z17: LDAX B
ORI 01000000B
STAX B
OUT BTLCH
PUSH H
CALL FEED1
POP D
LHLD FMP
DAD D
SHLD FMP
JMP Z15
Z16: CALL S2F2
LXI D,10
DAD D
CALL SSD
Z15: RET
SSD: LDAX B
ANI 10111111B
STAX B
OUT BTLCH
PUSH H
CALL FEED1
POP D
LHLD FMP
CALL S2F2
SHLD FMP
RET
SLM: XCHG
LHLD LMP
;PAGE 2.41
CALL C2W2
JZ Z19
Z40: LXI B,BLS
PUSH H
JC Z20
Z41: XCHG
CALL S2F2
LXI D,1
CALL C2W2
JC Z21
Z42: INX H
INX H
Z21: LDAX B
ORI 00100000B
STAX B
OUT BTLCH
PUSH H
CALL LENS1
POP D
POP H
DAD D
SHLD LMP
JMP Z19
Z20: CALL S2F2
LXI D,1
CALL C2W2
JC Z22
Z44: INX H
INX H
Z22: LDAX B
ANI 11011111B
STAX B
OUT BTLCH
PUSH H
CALL LENS1
POP D
POP H
CALL S2F2
SHLD LMP
Z19: RET
;PAGE 2.42
SLMMS: PUSH H
LHLD MLTSP
SHLD LTERM
POP H
LDA MLAL
STA ACLIM
CALL SLM
RET
CLC: LXI H,OLL
LXI B,MSLS
LDAX B
ANI 10001111B
ORA M
STAX B
OUT MSLCH
Z26: LHLD OLBB
XCHG
LHLD REV
CALL M2B2
DAD H
DAD H
MOV A,D
RLC
RLC
ANI 3
ORA L
MOV L,A
XCHG
LHLD OLES
XCHG
SHLD OLES
CALL C2W2
;PAGE 2.43
JZ Z147
XCHG
LHLD EC
LDA OLM
CPI 3
JNZ Z151
LHLD M3LEC
Z151: CALL M2B2
DAD H
DAD H
DAD H
DAD H
DAD H
DAD H
MOV A,H
RAR
ANI 7FH
PUSH PSW
CMA
MOV E,A
MVI D,0FFH
INX D
OUT BRT2
LXI B,BLS
LDAX B
ORI 20H
STAX B
OUT BTLCH
DB 0,0,0; NO-OP'S (CORRECTION)
LXI B,0
Z148: IN HCOGC
INX B
MOV A,C
ANI 0FH
JNZ Z148
MOV A,H
CMA
OUT BRT1
OUT BRT2+2
DAD D
MOV A,B
SUI 20H
JNZ Z149
MOV D,A
POP PSW
MOV E,A
MVI B,0A2H
Z149: CPI 0A2H
JNZ Z148
OUT BRT2
;PAGE 2.44
LHLD OLLS
LXI D,0
CALL C2W2
JZ Z152
LXI D,-265
DAD D
Z152: XCHG
LHLD LMP
CALL S2F2
LXI D,-694
DAD D
INR L
DCR L
JZ Z150
INR H
Z150: IN HCOGC
DCR L
JNZ Z150
DCR H
JNZ Z150
LHLD OLES
Z147: LXI D,1023
DAD D
MOV A,L
CMA
OUT BRT1
MOV A,H
CMA
OUT BRT1+2
RET
FCC: LHLD OLYC
XCHG
LHLD FMP
CALL C2W2
STC
JNZ Z30
;PAGE 2.45
Z48: LDA FMBSY
RAR
JNC Z31
Z49: CPI 37
JZ Z32
CPI 84
JZ Z50
STC
JMP Z30
Z50: LDA FACEL
RAR
JC Z33
Z51: LXI H,FASTP
MVI A,46
CMP M
JMP Z30
Z33: LXI H,FACLM
MVI A,15
CMP M
JMP Z30
Z32: LDA FACEL
RAR
JC Z34
Z56: LXI H,FASTP
MVI A,11
CMP M
JMP Z30
Z34: LXI H,FACLM
MVI A,4
CMP M
JMP Z30
Z31: LDA MSLS
ANI 00000100B
STC
JZ Z30
;PAGE 2.46
Z62: LDA OLAL
CPI 9
JNC Z30
Z63: LDA FSCD
RAR
JNC Z30
Z64: MVI A,10000000B
OUT LTIMR+3
IN GTIMR
MOV L,A
IN GTIMR
MOV H,A
LXI D,49755
CALL C2W2
Z30: RET
;PAGE 1.1
SPP: PUSH PSW
PUSH B
PUSH D
PUSH H
K01:
E00: LDA NLR
RAR
JC E73
E01: LHLD NLSP
XCHG
LHLD LBLP
CALL CHDZ
JZ E73
E04: LHLD NLBP
CALL CHDZ
JNZ E12
E05: LDAX D
CPI 128
JNZ E47
;PAGE 1.2
E06: INX D
LDAX D
MOV L,A
INX D
LDAX D
MOV H,A
SHLD NLXC
INX D
LDAX D
STA NLYC
XCHG
LHLD MXC
XCHG
CALL C2W2
E74: CC ERROR
E76: MVI A,2
STA NLS
LXI H,0
SHLD NLSS
SHLD NLPS
SUB A
STA SPSL
STA NLUD
STA NLBR
JMP E43
E47: CPI 130
E10: CNZ ERROR
E08: LXI H,0
SHLD NLLMR
LXI H,15
SHLD NLRMR
LHLD IFMP
SHLD NLYC
MVI A,01
STA NLR
JMP E43
E12: LDAX D
CPI 135
;PAGE 1.3
E07: CNC ERROR
E09: CPI 80H
JC E43
E13: CPI 132
JNZ E25
E14: XCHG
CALL DLBP
MOV A,M
CPI 131
E23: CNZ ERROR
E15: INX H
MOV A,M
STA LRS
CALL ILBP
XCHG
INX D
LDAX D
MOV H,A
INX D
LDAX D
RRC
RRC
RRC
RRC
ANI 11100000B
MOV L,A
SHLD LRSS
LDAX D
ANI 11100000B
MOV L,A
INX D
LDAX D
MOV H,A
SHLD LRPS
LDA NLS
MOV B,A
LDA LRS
CMP B
JNC E19
E17: STA NLS
E19: XCHG
LHLD NLPS
;PAGE 1.4
XCHG
CALL C2W2
JNC E22
E20: SHLD NLPS
E22: LXI D,1200H
CALL C2W2
JC E49
E75: MVI A,01
STA SPSL
E49: LHLD NLSS
XCHG
LHLD LRSS
CALL C2W2
JNC E43
E45: SHLD NLSS
JMP E43
E25: CPI 129
JNZ E38
E26: LHLD NLPS
LXI D,1200H
CALL C2W2
JNC E32
E27: LDA SPSL
RAR
E30: CC ERROR
E28: MVI A,3
STA NLM
JMP E37
E32: LXI D,0B00H
CALL C2W2
JC E35
E33: LDA NLS
ANI 3
STA NLM
JMP E37
;PAGE 1.5
E35: MVI A,00
STA NLM
E37: LDA NLPS+1
CPI 14
JC E50
MVI A,13
E50: CPI 5
JNC E51
MVI A,5
E51: ADD A
ADD A
MOV L,A
MVI H,00
LXI D,SBST-(4*5)
LDA NLM
MOV B,A
CPI 1
JZ E66
CPI 2
JNZ E52
E66: LXI D,ZBST-(4*5)
E52: DAD D
MOV E,M
INX H
MOV D,M
INX H
MOV C,M
MOV A,B
INX H
MOV B,M
CPI 3
JNZ E53
LHLD M3BS
DAD D
XCHG
LHLD M3FMS
DAD B
MOV B,H
MOV C,L
E53: XCHG
SHLD NLBS
E93: LDA NLBR
ORA A
JZ E92
E91: SUB A
STA NLM
;PAGE 1.6
LXI B,-90
LXI H,0
SHLD NLBS
E92: LHLD NLSP
INX H
MOV H,M
LDA NLYC
MOV L,A
PUSH H
DAD B
SHLD NLYC
POP D
LHLD MYC
XCHG
CALL C2W2
E81: CC ERROR
LDA NLM
ADD A
MOV B,A
ADD A
ADD A
ADD A
ADD B
MOV L,A
MVI H,00
LXI D,VMDT
DAD D
LXI D,NLAL
XCHG
MVI B,18
E65: CALL MDDHD
LDA NLSS+1
CPI 5
JNC E54
MVI A,5
E54: CPI 18
JC E55
MVI A,17
E55: MOV L,A
MVI H,00
LXI D,SCT-5
DAD D
MOV C,M
MVI A,24
SUB C
MOV L,A
;PAGE 1.7
LDA NLM
CPI 1
JZ E67
CPI 2
JNZ E56
E67: MOV A,L
SUI 2
ANI 0FEH
MOV L,A
E56: MOV A,L
STA NLLSC
PUSH B
LHLD NLSP
INX H
INX H
MOV E,M
INX H
MOV D,M
XCHG
SHLD NLLL
MOV D,L
MOV L,H
MVI H,0
LDA NLC
MOV B,A
CALL D3B1
MOV H,L
MOV L,D
LXI D,28
DAD D
POP B
MVI B,00
DAD D
LDA NLM
CPI 1
JZ E57
CPI 2
JNZ E58
E57: INX H
INX H
MOV A,L
ANI 0FEH
MOV L,A
E58: SHLD NLRSC
XCHG
LHLD NLXC
DAD D
E82: CC ERROR
;PAGE 1.8
XCHG
LHLD MXC
XCHG
CALL C2W2
E83: CC ERROR
LHLD NLLSC
MVI H,00
DCX H
LDA NLM
CPI 1
JZ E68
CPI 2
JNZ E59
E68: DCX H
E59: LDA NLC
MOV E,A
MVI D,00
CALL M2B2
MOV B,D
MOV C,E
LHLD NLXC
XCHG
LHLD LM0
DAD D
XCHG
LHLD NLCOA
XCHG
CALL S2F2
PUSH H
DAD B
SHLD TS9
LHLD NLRSC
INX H
INX H
LDA NLM
CPI 1
JZ E69
CPI 2
JNZ E61
E69: INX H
INX H
E61: LDA NLC
MOV E,A
MVI D,00
CALL M2B2
POP H
DAD D
;PAGE 1.9
XCHG
LHLD NLMSC
CALL M2B2
XCHG
SHLD TS11
INX D
INX D
LHLD NLLS
DAD D
XCHG
LHLD NLAL
MVI H,0
E63: DAD H
PUSH H
DAD D
SHLD NLRMR
LHLD TS9
XCHG
LHLD NLMSC
CALL M2B2
MOV C,E
MOV B,D
XCHG
INX D
INX D
LHLD NLLS
DAD D
POP D
CALL S2F2
SHLD NLLMR
MOV E,B
MVI D,1
LHLD NLMSP
CALL M2B2
SHLD NLLOD
LHLD TS11
XCHG
LXI H,0
CALL S2F2
MOV E,H
MVI D,-1
LHLD BLC
DAD D
XCHG
LHLD NLMSP
CALL M2B2
MOV H,L
;PAGE 1.10
MOV L,D
SHLD NLROD
MVI A,01
STA NLR
JMP E43
E38: CPI 128
E39: CZ ERROR
E41: CPI 130
E70: CZ ERROR
E86: CPI 133
JNZ E43
E87: MVI A,1
STA NLBR
STA NLUD
JMP E43
E43: LHLD NLSP
CALL ILBP
SHLD NLSP
MVI A,01
STA PPB
E73:
K02:
D00: LDA LPIP
RAR
JC D10
D01: LHLD NLBP
XCHG
;PAGE 1.11
LHLD OLCP
CALL C2W2
JNZ D06
D02: LDA NLR
RAR
JNC D42
D03: LXI H,OLT
LXI D,NLT
MVI B,37
CALL MDDHD
LHLD NLSP
SHLD NLBP
SUB A
STA NLR
INR A
STA LPIP
JMP D42
D06: LHLD OLCP
MOV A,M
RAL
JC D42
D58: INX H
MOV A,M
RAL
JC D42
MVI A,1
STA LPIP
JMP D42
D10: RAR
JC D42
D43: LDA FSCD
RAR
JC D47
D45: LHLD FMP
XCHG
LHLD OLYC
CALL C2W2
JZ D21
;PAGE 1.12
D11: LDA MSLS
ANI 00000100B
JNZ D19
D12: LDA FMBSY
RAR
JC D47
D13: CALL SFM
JMP D47
D19: LXI D,MSLS
LDAX D
ANI 11111011B
STAX D
OUT MSLCH
MVI A,1
STAX B
STA FSCD
MVI A,17920 AND 0FFH
OUT GTIMR
MVI A,17920 SHR 8
OUT GTIMR
JMP D47
D21: LXI B,MSLS
LDAX B
ANI 00000100B
JNZ D47
D23: LDA FMBSY
RAR
JC D47
D61: LDAX B
ORI 00000100B
STAX B
OUT MSLCH
MVI A,1
STA GPTB
STA FSCD
MVI A,53760 AND 0FFH
OUT GTIMR
MVI A,53760 SHR 8
OUT GTIMR
;PAGE 1.13
D47: LDA LMBSY
RAR
JC D42
D26: LDA OLUD
ORA A
JNZ D34
LHLD LMP
XCHG
LHLD OLRMR
PUSH D
CALL C2W2
JC D48
XCHG
D48: CALL S2F2
POP D
PUSH H
LHLD OLLMR
CALL C2W2
JC D49
XCHG
D49: CALL S2F2
POP D
CALL C2W2
JNC D34
D27: LHLD LMP
XCHG
LHLD OLRMR
CALL C2W2
JNZ D32
D28: CALL CLC
CALL FCC
JC D42
D29: SUB A
OUT HCOGC
LHLD OLRSC
MOV A,L
ORI 10000000B
OUT HCOGC
LDA OLM
CPI 1
JZ D54
CPI 2
JNZ D55
;PAGE 1.14
D54: MOV A,H
RAR
MOV H,A
MOV A,L
RAR
MOV L,A
D55: SHLD SCC
SHLD EOC1
SHLD EOC2
MVI A,1
STA SLR
SUB A
STA C1CC
STA C2CC
STA CCR
STA CCRS
CALL GNC
MVI A,1
STA TOO
LHLD OLROD
SHLD TOOD
LHLD NLBP
CALL DLBP
SHLD CLP
LDA OLRL
ORI 10100000B
OUT HCOGC
LHLD OLSP
SHLD LTERM
LDA OLAL
STA ACLIM
LHLD OLLMR
CALL SLM
MVI A,3
STA LPIP
JMP D42
D32: CALL SLMMS
JMP D42
;PAGE 1.15
D34: LHLD LMP
XCHG
LHLD OLLMR
CALL C2W2
JNZ D39
D35: CALL CLC
CALL FCC
JC D42
D36: SUB A
OUT HCOGC
MOV H,A
LDA OLLSC
MOV L,A
ORI 10000000B
OUT HCOGC
LDA OLM
CPI 1
JZ D57
CPI 2
JNZ D56
D57: MOV A,H
RAR
MOV H,A
MOV A,L
RAR
MOV L,A
D56: SHLD SCC
SHLD EOC1
SHLD EOC2
SUB A
STA SLR
STA C1CC
STA C2CC
STA CCR
STA CCRS
CALL GNC
MVI A,1
STA TOO
LHLD OLLOD
SHLD TOOD
LHLD OLBP
;PAGE 1.16
SHLD CLP
LDA OLRL
ORI 10000000B
ANI 11011111B
OUT HCOGC
LHLD OLSP
SHLD LTERM
LDA OLAL
STA ACLIM
LHLD OLRMR
CALL SLM
MVI A,3
STA LPIP
JMP D42
D39: CALL SLMMS
D42:
K03:
B00: LDA OKWD
MOV B,A
CPI 8
JZ B21
B02: LDA DARS
ANI 00000011B
MOV C,A
JZ B08
B03: MOV A,B
ORA A
JZ B06
LDA DISC
ADI '0'
;PAGE 1.17
STA DM7V
LXI D,DM7
B04: CALL NFE
B29: MVI A,8
STA OKWD
LXI D,DM22
CALL SMD
JMP B21
B06: MOV A,C
RAR
MVI A,00000011B
LXI H,LOKW
JNC B22
STA HPDR
LXI H,HOKW
JMP B23
B22: STA LPDR
B23: LXI D,OKWD
MVI B,8
B26: CALL MDDHD
MVI A,1
STA PPB
SUB A
STA DARS
JMP B21
B08: LDA HPDR
CPI 1
JNZ B11
B28: MVI A,1
STA VARSE
LXI H,HNS
LXI D,NSCT
MVI B,8
B24: MOV A,M
STAX D
DCX H
DCX D
DCR B
JNZ B24
;PAGE 1.18
MVI A,00000001B
STA DARS
JMP B21
B11: LDA LPDR
CPI 1
JNZ B21
B12: LDA LVSS
STA VARSE
LXI H,LNS
LXI D,NSCT
MVI B,8
B25: MOV A,M
STAX D
DCX H
DCX D
DCR B
JNZ B25
MVI A,00000010B
STA DARS
B21:
K04:
C00: LXI H,HPDR
MOV A,M
CPI 3
JNZ C59
MVI M,00
C01: LHLD RDEL
LXI D,0000
CALL C2W2
JZ C02
XCHG
C87: LHLD HDCA
;PAGE 1.19
CALL RAWA
CALL C2W2
C89: CNZ ERROR
C02: LHLD ERP
LDA DSN
CMP M
C92: CNZ ERROR
C99: LDA TRDR
RAR
JC C06
RAR
JC C04
C03: LDA RRD
RAR
JNC C68
C94: XCHG
LHLD RDS2
XCHG
LDA RDS1
MOV M,A
INX H
MOV M,E
INX H
MOV M,D
C68: LHLD HDCA
CALL RAWA
SHLD ERP
LXI H,RCT
DCR M
JZ C60
C96: LHLD ERP
DCX H
DCX H
DCX H
CALL RAWA
SHLD HDCA
SHLD ERP
MOV A,M
STA RDS1
INX H
MOV E,M
INX H
;PAGE 1.20
MOV D,M
XCHG
SHLD RDS2
MVI A,1
STA HNS
STA HPDR
STA RRD
LXI H,HSS
DCR M
DCX H
INR M
MVI A,8
STA HOKW
LXI H,0000
LDA RCT
DCR A
JNZ C61
LHLD RCEL
C61: SHLD RDEL
MVI A,00000100B
STA TRDR
JMP C59
C60: LHLD ERCAT
MOV E,M
INX H
MOV C,M
INX H
MOV B,M
INX H
CALL RCATW
SHLD ERCAT
LXI H,0000
MOV D,L
DAD D
DAD D
DAD D
LXI D,CTLT
DAD D
MOV A,M
ORI 10000000B
MOV M,A
INX H
MOV A,M
INX B
STAX B
INX H
INX B
;PAGE 1.21
MOV A,M
ANI 00111111B
STAX B
JMP C59
C04: PUSH H
LHLD NADSS
DAD H
DAD H
DAD H
DAD H
DAD H
MVI D,0
LDA NAESS
MOV B,A
CALL D3B1
MOV H,L
MOV L,D
SHLD NAPXM
SHLD NAPYM
C100: LXI H,RA1A
LXI B,CTLT
MOV A,M
RAR
JNC C67
LXI H,RA2A
MOV A,M
RAR
C104: CC ERROR
LXI B,CTLT+384
C67: PUSH B
LXI D,NAA
MVI B,14
CALL MDDHD
POP H
POP D
INX D
INX D
INX D
MVI B,255
CALL MDDHD
MVI B,129
CALL MDDHD
JMP C59
C06: LXI D,5
;PAGE 1.22
DAD D
CALL RAWA
XCHG
C69: PUSH D
LXI H,NATFN
MVI B,6
CALL CDDHD
JZ C07
POP H
LXI D,9
DAD D
CALL RAWA
XCHG
LHLD HDCA
CALL RAWA
CALL C2W2
JNZ C69
C08: LXI H,HDS
LDA NAD
CMP M
C105: CZ ERROR
C09: INR M
INX H
MVI M,0
INX H
MVI M,131
LHLD ERP
SHLD HDCA
MVI A,1
STA HPDR
STA HNS
MVI A,8
STA HOKW
MVI A,1
STA TRDR
LXI H,0
SHLD RDEL
JMP C59
C07: POP D
LHLD EADLP
MVI C,9
CALL MDDHD
LDA HDS
MOV M,A
INX H
CALL EAPWA
;PAGE 1.23
SHLD EADLP
C59: LHLD LBLP
XCHG
LHLD RLBSP
CALL C2W2
JZ C71
C17: MOV A,M
CPI 135
C106: CNC ERROR
C107: CPI 128
JNC C32
C18: INX H
MOV A,M
ANI 00100000B
JZ C45
C46: CALL ARLBS
JMP C71
C45: DCX H
LDA RSRAS
RRC
ORA M
MOV C,A
MVI B,0
XCHG
LXI H,CTLT
DAD B
DAD B
DAD B
MOV A,M
RAL
JNC C21
C19: LXI H,RCDT
DAD B
DAD B
MOV A,M
INR A
JZ C71
C52: INR M
XCHG
INX H
;PAGE 1.24
MOV A,M
ORI 0100000B
MOV M,A
CALL ARLBS
JMP C71
C21: CPI 77*2
JNZ C109
C108: LHLD RLBSP
INX H
MOV A,M
ORI 80H
MOV M,A
CALL ARLBS
JMP C71
C109: LDA HPDR
RAR
JC C71
C23: PUSH H
CALL FRR
XCHG
POP B
INX B
LDAX B
MOV L,A
INX B
LDAX B
ANI 00111111B
MOV H,A
INX H
INX H
INX H
CALL C2W2
JC C26
PUSH H
PUSH B
LHLD BRCAT
XCHG
LHLD ERCAT
INX H
INX H
INX H
;PAGE 1.25
CALL RCATW
CALL C2W2
POP B
POP H
JZ C26
C24: XCHG
LHLD ERP
DAD D
CALL RAWA
SHLD RCEL
LDAX B
RLC
RLC
ANI 00000011B
INR A
STA RCT
DCR A
JZ C85
LXI H,0
C85: SHLD RDEL
DCX B
DCX B
LDAX B
ANI 01111111B
STA HTS
LHLD RLBSP
MOV A,M
STA HSS
STA DSN
LDA RSRAS
RAR
MOV A,M
LXI D,RA1DS
JNC C75
ORI 10000000B
LXI D,RA2DS
C75: MOV C,A
MVI B,0
LHLD ERCAT
PUSH H
MOV M,A
LDAX D
STA HDS
INX H
XCHG
LHLD ERP
XCHG
MOV M,E
INX H
;PAGE 1.26
MOV M,D
LXI H,RCDT
DAD B
DAD B
MVI M,0
INX H
POP B
MOV M,C
XCHG
SHLD HDCA
MVI A,1
STA HPDR
STA HNS
STA HCW
MVI A,8
STA HOKW
MVI A,00000100B
STA TRDR
JMP C71
C26: CALL RCS
JMP C71
C32: CPI 132
JNZ C33
C112: CALL DLBP
MOV A,M
CPI 131
C113: CNZ ERROR
C35: INX H
INX H
MOV E,M
INX H
MOV D,M
XCHG
SHLD NATFN
XCHG
CALL ILBP
INX H
CALL CSPS
XCHG
SHLD NADPS
MOV H,B
MOV L,C
SHLD NADSS
LDA RA1A
;PAGE 1.27
RAR
JNC C84
LXI D,NATFN
LXI H,A1TFN
MVI B,6
CALL CDDHD
MVI A,0
JZ C36
C84: LDA RA2A
RAR
JNC C38
LXI D,NATFN
LXI H,A2TFN
MVI B,6
CALL CDDHD
JNZ C38
MVI A,1
C36: STA RSRAS
C114: CALL ARLBS
JMP C71
C38: LDA RA1A
RAR
JNC C41
LDA RA2A
RAR
JNC C41
C39: LXI H,RCDT
MVI B,128
SUB A
C77: CMP M
JNZ C78
INX H
INX H
DCR B
JNZ C77
MOV C,A
JMP C57
C78: LXI H,RCDT+256
MVI B,128
C79: CMP M
JNZ C71
INX H
INX H
DCR B
;PAGE 1.28
JNZ C79
MVI C,10000000B
C57: LHLD ERCAT
XCHG
LHLD BRCAT
C80: CALL C2W2
JZ C58
MOV A,M
ANI 10000000B
CMP C
JZ C76
INX H
INX H
INX H
CALL RCATW
JMP C80
C58: MOV A,C
LXI H,RA1A
RAL
JNC C81
LXI H,RA2A
C81: MVI M,0
MVI A,1
STA PPB
JMP C71
C76: CALL RCS
JMP C71
C41: LDA HPDR
RAR
JC C71
C43: LXI H,EAD
MVI C,8
C82: PUSH H
LXI D,NATFN
MVI B,6
CALL CDDHD
POP H
JZ C44
LXI D,10
DAD D
DCR C
JNZ C82
;PAGE 1.29
JMP C55
C44: LXI D,6
DAD D
MOV A,M
STA NAEPS
INX H
MOV A,M
STA NAESS
INX H
INX H
MOV A,M
STA NADS
PUSH H
CALL FRR
LXI D,(3*130)+2
CALL C2W2
POP H
JNC C117
C54: MOV A,M
DCX H
MOV H,M
MOV L,A
SHLD HDS
LXI H,0108H
SHLD HOKW
MVI A,130
STA HSS
STA DSN
LHLD ERP
SHLD HDCA
LXI D,(3*180)+3
DAD D
CALL RAWA
SHLD RDEL
MVI A,00000010B
STA TRDR
MVI A,1
STA HNS
STA HPDR
JMP C71
C117: CALL RCS
JMP C71
;PAGE 1.30
C55: CALL FRR
LXI D,552
CALL C2W2
JNC C118
C56: LXI H,0108H
SHLD HOKW
LHLD IS
MVI H,0
SHLD HDS
MVI A,131
STA HSS
STA DSN
LHLD ERP
SHLD HDCA
LXI H,1
SHLD RDEL
MVI A,1
STA TRDR
STA HNS
STA HPDR
JMP C71
C118: CALL RCS
JMP C71
C33: CALL ARLBS
C71:
A00: LDA LPIP
CPI 3
JNZ A33
A50: LDA CCR
CPI 00001111B
JNZ A02
A01: LDA ORS
ORA A
JZ A33
;PAGE 1.31
JMP A00
A02: LHLD CLP
XCHG
LHLD NLBP
LDA SLR
RAR
JNC A34
LHLD OLBP
A34: CALL C2W2
JZ A33
A04: LDAX D
CPI 128
JC A06
A05: CPI 132
JNZ A12
A14: XCHG
CALL DLBP
INX H
INX H
MOV A,M
STA TS9
INX H
MOV A,M
STA TS10
CALL ILBP
INX H
CALL CSPS
XCHG
SHLD TS11
MOV H,B
MOV L,C
SHLD TS13
LDA RA1A
RAR
JNC A77
LXI H,TS9
LXI D,A1TFN
MVI B,6
CALL CDDHD
MVI A,0
JZ A36
A77: LDA RA2A
RAR
JNC A72
LXI H,TS9
LXI D,A2TFN
;PAGE 1.32
MVI B,6
CALL CDDHD
MVI A,1
JZ A36
A72: MVI A,2
A36: STA ORFS
CPI 2
JZ A11
A51: LXI H,A1PYM
DCR A
JNZ A38
LXI H,A2PYM
A38: LXI D,TS9
XCHG
MVI B,4
CALL MDDHD
LHLD TS11
XCHG
LHLD OLEC
CALL M2B2
MOV A,L
ANI 11111110B
MOV L,A
DAD H
DAD H
DAD H
DAD H
JNC A65
LXI H,0FFFFH
A65: SHLD OFXM
LXI D,360
CALL M2B2
XCHG
LXI H,416
CALL S2F2
SHLD OFPLF
LHLD TS9
XCHG
LHLD OLILM
CALL M2B2
MOV A,L
ANI 11111110B
MOV L,A
DAD H
DAD H
;PAGE 1.33
DAD H
DAD H
JNC A66
LXI H,0FFFFH
A66: SHLD OFYM
LXI D,369
CALL M2B2
XCHG
LXI H,369
CALL S2F2
XCHG
LHLD OLBS
DAD D
SHLD OFYS
JMP A11
A12: CPI 134
JNZ A11
A67: LDA ORS
ORA A
JNZ A75
A74: LHLD CLP
CALL DLBP
INX H
MOV E,M
INX H
MOV D,M
PUSH H
LXI H,071CH
CALL M2B2
MOV H,L
MOV L,D
SHLD BLRC+7
LXI D,69 SHL 5
CALL M2B2
MVI A,69
SUB L
STA BLRC+11
POP H
INX H
MOV E,M
LHLD CLP
INX H
MOV D,M
;PAGE 1.34
INX H
MOV A,M
INX H
MOV H,M
MOV L,A
XCHG
SHLD RCP
XCHG
CALL S2F2
LXI D,0AABH
CALL M2B2
INX H
SHLD NRC
LHLD SEC
CALL M2B2
MVI B,4
CALL SHLR
SHLD LRXM
MVI L,0FFH
LXI D,360 SHL 5
CALL M2B2
LXI D,360
XCHG
CALL S2F2
SHLD LRLFA
LHLD SEC
LXI D,56 SHL 1
CALL M2B2
SHLD OFPLF
MVI A,1
STA ORS
A75: LHLD RCP
XCHG
LHLD SEC
CALL M2B2
SUB A
DAD H
ACI 0
DAD H
ACI 0
MOV E,A
MOV A,D
RLC
RLC
ANI 3
ORA L
;PAGE 1.35
MOV L,A
LDA OFPLF
ADD L
MOV L,A
LDA OFPLF+1
ADC H
MOV H,A
MOV A,E
ACI 0
MOV E,A
LDA NRC
DCR A
JNZ Z141
LDA NRC+1
ORA A
JNZ Z141
LDA LRLFA
ADD L
MOV L,A
LDA LRLFA+1
ADC H
MOV H,A
MOV A,E
ACI 0
MOV E,A
Z141: MOV A,L
STA CCXS
MOV A,H
RRC
RRC
RRC
RRC
ANI 0F0H
MOV B,A
ORI 0FH
STA CCXM
LDA NRC
DCR A
JNZ Z145
LDA NRC+1
ORA A
JNZ Z145
LDA LRXM+1
ORA B
STA CCXM
Z145: PUSH H
;PAGE 1.36
PUSH D
SUB A
LXI B,360
DAD B
ADC E
PUSH PSW
MVI B,4
CALL SHLR
POP PSW
RRC
RRC
RRC
RRC
ORA H
MOV H,A
SHLD CCLL
POP D
POP H
SUB A
LXI B,407
DAD B
ADC E
PUSH PSW
MVI B,4
CALL SHLR
POP PSW
RRC
RRC
RRC
RRC
ORA H
MOV H,A
SHLD CCRL
LXI H,DLB
SHLD CCLBA
LXI H,350
SHLD BT
LXI H,119
SHLD CCDL
LXI H,BLRC
SHLD CCDDA
CALL A73
A76: LHLD NRC
DCX H
SHLD NRC
LXI D,0
;PAGE 1.37
CALL C2W2
JNZ A78
A79: SUB A
STA ORS
JMP A11
A78: LHLD RCP
LXI D,24
DAD D
SHLD RCP
LHLD CLP
CALL DLBP
SHLD CLP
JMP A11
A06: INX D
LDAX D
RLC
JC A11
A53: LDA ORFS
CPI 2
JZ A61
A54: DCX D
DCR A
LDAX D
INX D
JNZ A37
ORI 10000000B
MOV C,A
LDAX D
ORI 00000001B
JMP A41
A37: ANI 01111111B
MOV C,A
LDAX D
ANI 11111110B
A41: STAX D
MVI B,0
LXI H,CTLT
DAD B
DAD B
DAD B
MOV A,M
;PAGE 1.38
RAL
JNC A09
A07: LDAX D
ANI 00100000B
JNZ A31
A26: LXI H,RCDT
DAD B
DAD B
MOV A,M
INR A
JNZ A29
A27: LDAX D
ORI 01000000B
STAX D
JMP A11
A29: MOV M,A
LDAX D
ORI 20H
STAX D
A31: DCX D
XCHG
SHLD CCLBA
INX H
INX H
MOV E,M
INX H
MOV D,M
LHLD OLLL
XCHG
CALL C2W2
A55: CC ERROR
PUSH H
A56: LXI H,RCDT
DAD B
DAD B
INX H
MOV L,M
MVI H,RCAT SHR 8
INX H
MOV E,M
INX H
MOV D,M
;PAGE 1.39
INX D
INX D
INX D
INX D
INX D
LDAX D
MOV L,A
INX D
LDAX D
MOV H,A
DCX H
DCX H
SHLD CCDL
DCX D
DCX D
DCX D
XCHG
SHLD TS9
POP D
LHLD OLEC
CALL M2B2
MOV A,D
RAL
MOV A,L
RAL
MOV L,A
MOV A,H
RAL
MOV H,A
SUB A
DAD H
RAL
XCHG
LHLD OFPLF
DAD D
ACI 0
PUSH H
PUSH PSW
MOV A,L
STA CCXS
MOV A,H
RRC
RRC
RRC
RRC
ANI 01110000B
MOV C,A
LHLD OFXM
;PAGE 1.40
MVI B,5
CALL SHLR
MOV A,C
ORA H
STA CCXM
MOV A,L
STA TS11
LDA OFYS
STA TS12
LHLD OFYM
MVI B,5
CALL SHLR
LDA OFYS+1
RRC
RRC
RRC
RRC
ANI 011110000B ; MAYBE SHOULD BE 01111000B
ORA H
MOV H,A
SHLD TS13
LHLD TS9
MOV E,M
INX H
MOV A,M
RAL
A57: CNC ERROR
CMC
RAR
MOV D,A
INX H
SHLD TS9
LHLD OFXM
CALL M2B2
POP PSW
POP D
PUSH D
PUSH PSW
DAD D
ACI 0FH
ANI 00010000B
MOV C,A
MVI B,4
LDA OLM
DCR A
JZ A46
DCR A
JNZ A47
;PAGE 1.41
A46: MVI B,5
MOV A,C
RRC
MOV C,A
A47: CALL SHLR
MOV A,C
ORA H
MOV H,A
SHLD CCLL
LHLD TS9
INX H
INX H
MOV A,M
STA BT
INX H
MOV A,M
STA BT+1
INX H
MOV E,M
INX H
MOV A,M
RAL
A58: CC ERROR
SHLD TS9
MOV D,M
INX H
MOV A,M
ORA A
A59: CNZ ERROR
SHLD CCDDA
MOV A,C
RRC
MOV C,A
LHLD OFXM
CALL M2B2
POP PSW
POP D
DAD D
ACI 0FH
ANI 00010000B
MOV C,A
MVI B,4
LDA OLM
DCR A
JZ A48
DCR A
JNZ A49
;PAGE 1.42
A48: MVI B,5
A49: CALL SHLR
MOV A,C
ORA H
MOV H,A
SHLD CCRL
LHLD TS9
LXI D,6
DAD D
LDA TS11
MOV M,A
INX H
INX H
LDA TS13
MOV M,A
INX H
LDA TS14
MOV M,A
INX H
INX H
INX H
LDA TS12
MOV M,A
LHLD ISDIC
MVI H,0
XCHG
LHLD SCC
LDA SLR
RAR
JC A71
DAD D
XCHG
LHLD CCLL
JMP A80
A71: CALL S2F2
XCHG
LHLD CCRL
XCHG
A80: INX D
INX D
INX D
INX D
CALL C2W2
JNC A70
CALL A73
JMP A11
;PAGE 1.43
A70: LHLD CCLBA
INX H
MOV A,M
ORI 40H
MOV M,A
JMP A11
A73: LDA CCR
LXI H,CAN
MVI C,00000001B
RAR
JNC A42
LXI H,CAN+14
MVI C,00000010B
RAR
JNC A42
LXI H,CAN+28
MVI C,00000100B
RAR
JNC A42
LXI H,CAN+42
MVI C,00001000B
RAR
A60: CC ERROR
A42: LXI D,CCLL
MVI B,14
CALL MDDHD
LDA CCR
ORA C
STA CCR
LDA CCRS
ORA C
STA CCRS
RET
A09: LDAX D
ORI 01000000B
STAX D
JMP A11
A61: LDAX D
ORI 01000000B
;PAGE 1.44
STAX D
A11: LHLD CLP
LDA SLR
RAR
JNC A43
CALL DLBP
JMP A44
A43: CALL ILBP
A44: SHLD CLP
JMP A00
A33: LHLD NLBP
XCHG
LHLD OLCP
CALL C2W2
JZ A35
A19: MOV A,M
RAL
JNC A22
A20: CALL ILBP
SHLD OLCP
MVI A,1
STA PPB
JMP A35
A22: INX H
MOV A,M
RAL
JNC A35
A23: CALL ILBP
SHLD OLCP
MVI A,1
STA PPB
A35:
;PAGE 1.45
J08: LXI H,PPB
MOV A,M
MVI M,0
RAR
JC J10
J11: SUB A
STA PPA
LDA GPTB
RAR
JC J12
LHLD MCPUT
MOV A,L
OUT GTIMR
MOV A,H
OUT GTIMR
J12: POP H
POP D
POP B
POP PSW
RET
J10: JMP K01
SDIS:
F00: PUSH PSW
PUSH B
PUSH D
PUSH H
LDA ISDIC
ORA A
JZ F09
F02: DCR A
STA ISDIC
IN COLL
;PAGE 1.46
LHLD SCC
LDA SLR
RAR
JC F06
F04: INX H
SHLD SCC
JMP F13
F06: DCX H
SHLD SCC
F13: LXI H,SSDI
MOV A,M
RAR
JNC F10
F08: MVI M,2
LXI H,MSLS
MOV A,M
ORI 00001000B
MOV M,A
OUT MSLCH
F10:
F11: POP H
POP D
POP B
MVI A,20H
DI
OUT INT
POP PSW
EI
RET
F09: OUT DMA+10
LHLD C2DIA
XCHG
LHLD C2XMD
LDAX D
MOV M,A
INX H
INX H
INX H
INX D
LDAX D
MOV M,A
INX D
;PAGE 1.47
LDAX D
ADI 3
OUT DMA
INX D
LDAX D
ACI 0
OUT DMA
INX D
LDAX D
OUT DMA+6
INX D
LDAX D
OUT DMA+7
OUT DMA+10
IN COLL
LXI H,SSDI
MOV A,M
ORA A
JNZ F16
INR M
F16: CALL GNC
F17: JMP RDC
BLRC: DB 0,68H,0B9H,45H,0,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
;PAGE 1.48
DB 4FH,0C2H,0E0H,0C1H,0C1H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 0FH,1EH,3CH,78H,0F0H,0E0H,0C1H,83H,7
DB 4FH,18H,3CH,38H,0,0,0,0F8H
IRD: HLT ; RS232 INTERFACE CODE NOT SUPPLIED (STEADY-STATE)
IRI: HLT ; DITTO (INITIALIZE)
RDI: HLT ; DITTO (INTERRUPT)
;DATA STRUCTURES
ORG 69C0H
LB: DS 512*3
RCAT: DS 61*3
EAD: DS 8*10
CTLT: DS 2*(128*3)
RCDT: DS 2*(128*2)
OLT:
OLUD: DS 1
OLLL: DS 2
OLBP: DW IB
OLYC: DS 2
OLM: DS 1
OLLMR: DS 2
OLRMR: DS 2
OLLOD: DS 2
OLROD: DS 2
OLBS: DS 2
OLLSC: DS 1
OLRSC: DS 2
OLAL: DS 1
OLSP: DS 2
OLC: DS 1
OLRL: DS 1
OLBB: DS 2
OLL: DS 1
OLILM: DS 2
OLEC: DS 2
OLCOA: DS 2
OLLS: DS 2
NLT:
NLUD: DS 1
NLLL: DS 2
NLBP: DW LB
NLYC: DS 2
NLM: DS 1
NLLMR: DS 2
NLRMR: DS 2
NLLOD: DS 2
NLROD: DS 2
NLBS: DS 2
NLLSC: DS 1
NLRSC: DS 2
NLAL: DS 1
NLMSP: DS 2
NLC: DS 1
NLRL: DS 1
NLBB: DS 2
NLL: DS 1
NLILM: DS 2
NLEC: DS 2
NLCOA: DS 2
NLLS: DS 2
NLMSC: DS 2
VMDT:
SAL: DB 8
SSP: DW 1829
SC: DB 8
SRL: DB 00001101B
SMBB: DW 4000H
SL: DB 00010000B
SILM: DW 8000H
SEC: DW 7FFFH
SC0A: DW 26*8
SLS: DW 0
SMSC: DW 5E10H
ZAL: DB 37
ZSP: DW 915
ZC: DB 8
ZRL: DB 00011101B
ZBB: DW 6DB7H
ZL: DB 00010000B
ZILM: DW 8000H
ZEC: DW 7FEDH
ZC0A: DW 26*8
ZLS: DW 0
ZMSC: DW 5E10H
TZAL: DB 84
TZSP: DW 610
TZC: DB 12
TZRL: DB 00011101B
TZBB: DW 9249H
TZL: DB 00010000B
TZILM: DW 8000H
TZEC: DW 553EH
TZC0A: DW 26*12
TZLS: DW 0
TZMSC: DW 5E10H
M3AL: DB 8
M3SP: DW 1894
M3C: DB 24
M3RL: DB 00000111B
M3BB: DW 4925H
M3L: DB 00100000B
M3ILM: DW 2C65H
M3EC: DW 2AA5H
M3C0A: DW 26*24
M3LS: DW 2550
M3MSC: DW 5AE0H
NAA: DB 1
NATFN: DS 2
NADPS: DS 2
NADSS: DS 2
NAEPS: DS 1
NAESS: DS 1
NADS: DS 1
NAPYM: DS 2
NAPXM: DS 2
RA1A: DB 0
A1TFN: DS 2
A1DPS: DS 2
A1DSS: DS 2
A1EPS: DS 1
A1ESS: DS 1
RA1DS: DS 1
A1PYM: DS 2
A1PXM: DS 2
RA2A: DB 0
A2TFN: DS 2
A2DPS: DS 2
A2DSS: DS 2
A2EPS: DS 1
A2ESS: DS 1
RA2DS: DS 1
A2PYM: DS 2
A2PXM: DS 2
SBST: DW 570
DW 171
DW 510
DW 153
DW 450
DW 135
DW 360
DW 108
DW 300
DW 90
DW 210
DW 63
DW 150
DW 45
DW 60
DW 18
DW 0
DW 0
ZBST: DW -240
DW -72
DW -210
DW -63
DW -180
DW -54
DW -180
DW -54
DW -150
DW -45
DW -150
DW -45
DW -150
DW -45
DW -150
DW -45
SCT: DB 7
DB 8
DB 9
DB 11
DB 12
DB 13
DB 15
DB 16
DB 17
DB 18
DB 20
DB 21
DB 22
DB 23
M3FMS: DW -170
M3BS: DW 0
MYC: DW 29200
IFMP: DW 30000
FMP: DW 30000
LM0: DW 3500
MXC: DW 42666
BLC: DW 4E1H
LMP: DW 0
MLAL: DB 88
MLTSP: DW 597
MSLS: DB 0
BLS: DB 11110110B
NAD: DB 1
NLBR: DB 0
NLR: DB 0
NLSP: DW LB
NLXC: DS 2
NLSS: DW 0
NLPS: DW 0
NLS: DB 0
LRS: DB 0
LRPS: DW 0
LRSS: DW 0
SPSL: DB 0
ORFS: DB 2
OFXM: DS 2
OFPLF: DS 2
OFYM: DS 2
OFYS: DS 2
BCS: DW 0
TOOD: DW 0
TOO: DB 0
SLR: DB 0
LPIP: DB 0
OLCP: DW LB
FSCD: DB 0
PPA: DB 0
PPB: DB 0
MCPUT: DW 14336
TS1: DS 1
TS2: DS 1
TS3: DS 1
TS4: DS 1
TS5: DS 1
TS6: DS 1
TS7: DS 1
TS8: DS 1
EADLP: DW EAD
BRCAT: DW RCAT
ERCAT: DW RCAT
GPTB: DB 0
RLBSP: DW LB
BRP: DW CRT
RSRAS: DB 0
ERP: DW CRT
RDEL: DW 0
DARS: DB 0
TRDR: DB 0
DSN: DB 0
RCEL: DW 0
RDS2: DS 2
RDS1: DS 1
RCT: DB 0
RRD: DB 0
SCC: DW 0
EOC1: DW 0
EOC2: DW 0
CLP: DW LB
CCLL: DW 0
CCRL: DW 0
CCLBA: DW 0
BT: DW 0
CCXM: DB 0
CCXS: DB 0
CCDL: DW 0
CCDDA: DW 0
C1DIA: DW 0
C1XMD: DW 0
C1CC: DB 0
C2DIA: DW 0
C2XMD: DW 0
C2CC: DB 0
CCR: DB 0
CCRS: DB 0
ISDIC: DB 0
SSDI: DB 0
CAN: DS 4*14
ACLIM: DB 9
LSTEP: DW 0
ASTEP: DB 0
LACNT: DB 0
ACCEL: DB 0
LTERM: DW 1792
ACTBL: DB 1
FACLM: DB 31
FSTEP: DW 0
FASTP: DB 0
FTABP: DW 0
FACNT: DB 0
FACEL: DB 0
TABFP: DW 0
LSB: DB 0
MSB: DB 0
FTERM: DW 995
FACTB: DB 0
LBLP: DW LB
DM2: DB 8,'COMMAND?'
DM5: DB 'CANNOT WRITE DISC '
DM5V: DS 1
DM7: DB 18,'CANNOT READ DISC '
DM7V: DS 1
DM9: DB 9,'EXPOSURE '
DM10: DB 13,'COMMAND ERROR'
DM11: DB 11,'FILM WIDTH '
DM12: DB 12,'FILM LENGTH '
DM14: DB 6,'SPEED '
DM22: DB 12,'PRINTER BUSY'
DM23: DB 17,'CANNOT READ MENUE'
DM24: DB 13,'FILM OVERFLOW'
DM25: DB 19,'CANNOT FIND FONT 00'
DM26: DB 12,'ILLEGAL CODE'
RCP: DW 0
NRC: DW 0
ORS: DB 0
RS: DB 0
SIC: DB 0
SFL: DW 0
LLC: DW 0
BILP: DW IB
HRL: DB 0
LILA: DW 0
LIFLA: DW 0
SOV: DW 217
RSP: DW 0
HRH: DB 0
BRC: DB 0
ICR: DB 0
MDM: DB 0
FW: DB 0
FL: DB 0
ROS: DB 0
IS: DB 0
BR: DB 0
IBLP: DW IB
WLBLP: DW LB
WFL: DW 0
REE: DB 0
LFV: DW 0
CIV: DW 0
NIV: DW 0
NFL: DW 0
IFLEV: DW 0 ; CALLED 'IFL' IN SOURCE
OLES: DW 0FFFFH
OS: DB 0
ECF: DB 0
EL1: DB 0
IBRP: DW IB
SIL: DB 0
NHC: DB 0
NHB: DS 4
FMLF: DB 0
FM: DS 40*8
MLTFN: DW 0
MLFS: DW 0
MLSPS: DW 0
FFD: DB 0
MLWF: DB 0
EL2: DB 0
JDD: DB 0
ICS: DB 0
JD: DB 0
WLS: DB 0
HRS: DB 0
ILD: DB 0
WLL: DW 0
ARU: DW 0
AP: DW 0
IFS: DW 0
ICCT: DS 256
CST: DS 20
M3LEC: DW 8000H
REV: DW 0
PPS: DB 0
DSL: DB 0
WF: DW 0
LRXM: DS 2
LRLFA: DS 2
EC: DW 0
DC1: DB 1,1,1,0,131,0,80H,1
DM3: DB 24,'CANNOT FIND 00-0000-00.0'
ORG 7B80H
IB: DS 7*128
TS9: DS 1
TS10: DS 1
TS11: DS 1
TS12: DS 1
TS13: DS 1
TS14: DS 1
ORG 7FC2H
ISPV:
LMBSY: DB 0
FMBSY: DB 0
KBLC: DB 0
BTS3: DB 0
BTS4: DB 0
BTS5: DB 0
BTS6: DB 0
BTS7: DB 0
BTS1: DB 0
KBIB: DS 5
HPDR: DB 0
HOKW: DB 0
HCW: DB 0
HDS: DB 0
HTS: DB 0
HSS: DB 0
HDCA: DW 0
HNS: DB 0
HVSS: DB 1
LPDR: DB 0
LOKW: DB 0
LCW: DB 0
LDS: DB 0
LTS: DB 0
LSS: DB 0
LDCA: DW 0
LNS: DB 0
LVSS: DB 0
DS 10
VARSE: DB 0
DS 9
OKWD: DB 0
COMWD: DB 0
DISC: DB 0
TRACK: DB 0
SECTR: DB 0
ADDR: DW 0
NSCT: DB 0
ORG 8000H
CRT: DS 16*1024
TB EQU 8720H
;PAGE 4.1
ORG 0B000H
FA: LXI D,DM17
CALL SMD
SUB A
STA FSRL
STA NSTB
LXI H,0
SHLD THDT
STA CDW
LXI H,DC1
SUB A
STA DC1+2
CALL SDC
S01: ORA A
JZ S03
S02: LXI D,DM7
MVI A,'0'
STA DM7V
S35: CALL NFE
RET
S03: LHLD 8003H
XCHG
LXI H,2C1EH
INX H
MOV A,E
SUB M
JNZ S01
MOV A,D
INX H
SUB M
JNZ S01
;PAGE 4.2
LXI H,TB
SHLD TBLP
SHLD LSTB
SUB A
STA NSTB
LXI H,DC3
CALL SDC
S07: ORA A
JZ S09
S08: LXI H,DC4
CALL SDC
LXI H,2
SHLD 8204H
MVI A,131
STA 8203H
SUB A
STA FLT
MVI A,131
STA TB
LXI H,512
SHLD TB+1
LXI H,TB+512+3
SHLD TBLP
CALL ISNT
JMP S15
S09: LHLD 8206H
XCHG
LXI H,101DH
INX H
INX H
MOV A,E
SUB M
JNZ S01
INX H
MOV A,D
SUB M
JNZ S01
S10: LHLD 8204H
LXI D,8205H
DAD D
XCHG
;PAGE 4.3
MVI B,0
LXI H,8208H
S29: PUSH D
LXI D,8
DAD D
MOV A,B
CMP M
JNC S30
MOV B,M
S30: INX H
POP D
CALL C2W2
JNC S29
MOV A,B
STA DC5+3
LXI H,DC5
CALL SDC
S11: ORA A
JNZ S16
S13: CALL RACT
LXI H,OKWD
MOV A,M
ORA A
JNZ S16
LXI D,8406H
LHLD ADDR
SHLD LSTB
LXI B,393+256
CALL PDDHD
SHLD TBLP
CALL ISNT
LDA TRACK
STA FLT
CALL TTBF
JNC S15
LXI H,FLT
INR M
LXI H,TB
SHLD TBLP
SUB A
;PAGE 4.4
STA NSTB
LXI H,0
SHLD THDT
S15: LDA OKWD
ORA A
JZ S18
S16: LXI D,DM7
MVI A,'1'
STA DM7V
S17: CALL NFE
RET
S18: SUB A
STA KBLC
LXI D,DM18
CALL SMD
MVI B,4
CALL RDKC
LXI H,KBIB
MVI B,4
CALL BCDTB
SHLD LFFN
LXI D,DM19
CALL DCS
SUB A
STA KBLC
MVI B,1
CALL RDKC
S23: LDA KBIB
CPI 0AH
JZ S24
CPI 0BH
JZ S25
S26: MVI B,1
CALL RDKC
MVI A,'.'
;PAGE 4.5
CALL DC
MVI B,1
CALL RDKC
CALL D1S
LXI H,KBIB
MVI B,2
CALL BCDTB
DAD H
DAD H
DAD H
LDA KBIB+2
ORA A
JZ S36
LXI D,4
DAD D
S36: SHLD SFPS
LXI H,LFFN
SHLD SFA
JMP S27
S24: LXI H,TRT
SHLD SFA
MVI A,1
STA FSRL
JMP S27
S25: LXI H,DRT
SHLD SFA
MVI A,1
STA FSRL
S27: LXI D,DM17
CALL SMD
T00: LHLD 341FH
SHLD 8206H
LHLD SFA
LXI D,LFSPS
MOV A,M
STAX D
INX H
INX D
MOV A,M
;PAGE 4.6
STAX D
LHLD 8001H
LXI D,8003H
DAD D
INX D
INX D
T48: PUSH H
LXI H,LFFN
LDAX D
CMP M
INX D
INX H
JNZ T49
LDAX D
CMP M
JNZ T49
INX H
MOV C,M
INX H
MOV B,M
XCHG
INX H
MOV A,M
STA LFEPS
INX H
MOV A,M
STA LFESS
INX H
MOV A,M
STA LFCDT
INX H
MOV E,M
INX H
MVI D,0
T50: MOV A,B
INX H
CMP M
DCX H
JC T52
JNZ T51
MOV A,C
CMP M
JC T52
JNZ T51
INX H
INX H
INX H
INX H
JMP T78
T51: INX H
;PAGE 4.7
INX H
INX H
INX H
DCR E
DCR E
DCR E
DCR E
JZ T53
INR D
JMP T50
T52: MOV A,D
ORA A
JZ T53
T78: DCX H
MOV D,M
DCX H
MOV E,M
DCX H
MOV A,M
DCX H
MOV L,M
MOV H,A
XCHG
CALL S2F2
DAD B
SHLD LFSSS
POP H
JMP T03
T49: XCHG
INX H
INX H
INX H
INX H
MOV E,M
INX H
T53: MVI D,0
DAD D
XCHG
POP H
CALL C2W2
JC T48
T01: LXI D,DM20
T02: CALL NFE
SUB A
STA FSRL
JMP T60
T03:
;PAGE 4.8
T04: LHLD 8204H
LXI D,8206H
DAD D
INX D
INX D
LXI B,0
T54: PUSH H
PUSH D
LXI H,LFFN
LDAX D
CMP M
JNZ T55
INX D
INX H
LDAX D
CMP M
JNZ T55
INX D
INX H
LDAX D
CMP M
INX D
INX H
JNZ T56
LDAX D
CMP M
JNZ T56
LXI B,101H
JMP T55
T56: INX D
INX H
INX D
INX H
INX D
INX H
LDAX D
CMP M
JNZ T55
MVI C,1
INX D
INX D
LDAX D
STA LFCDT
T55: POP D
LXI H,9
DAD D
XCHG
POP H
CALL C2W2
JC T54
;PAGE 4.9
DCR C
JNZ T13
T05: DCR B
JZ T60
T08: CALL AADD
JNC T58
T57: LXI D,DM21
T67: CALL NFE
T59: SUB A
STA FSRL
JMP T60
T58: SHLD 8204H
JMP T60
T13: LXI H,DC7
LDA LFCDT
STA DC7+3
CALL SDC
T14: LDA OKWD
ORA A
JNZ T60
T16: SUB A
STA LPN
T17: LDA LPN
STA FPT
T25: SUB A
STA TBDS
LDA LPN
MOV E,A
MVI D,0
LXI H,0
DAD D
DAD H
DAD D
LXI D,8595H
DAD D
SHLD LPA
INX H
;PAGE 4.10
INX H
MOV B,M
MOV A,B
ANI 00111111B
MOV M,A
MOV A,B
RLC
RLC
ANI 00000011B
STA LPBC
T18: LDA LPN
CPI 130
JNZ T27
T26: SUB A
STA LPBC
INR A
STA CDW
LHLD TBLP
SHLD LSTB
LXI D,8592H
LXI B,393+256
CALL PDDHD
SHLD TBLP
CALL ISNT
JMP T20
T27: LHLD LPA
MOV A,M
MOV B,A
CPI 77
JZ T69
T68: LDA TBDS
ORA A
JNZ T72
T73: LDA FLT
MOV M,A
T72: MOV A,B
STA TRACK
MVI A,1
STA COMWD
STA NSCT
SUB A
STA DISC
;PAGE 4.11
LDA LPN
STA SECTR
LHLD TBLP
SHLD ADDR
CALL ISNT
MVI A,8
STA OKWD
CALL WUDCD
T19: LDA TBDS
ORA A
JZ T79
T70: LHLD TBS1
XCHG
LHLD TBLP
MOV M,E
INX H
MOV M,D
INX H
LDA TBS3
MOV M,A
T79: LHLD ADDR
SHLD TBLP
T20: LDA OKWD
ORA A
JNZ T33
T22: LXI H,LPBC
MOV A,M
ORA A
JZ T28
T24: DCR M
LHLD ADDR
DCX H
MOV A,M
STA TBS3
DCX H
MOV D,M
DCX H
MOV E,M
SHLD TBLP
XCHG
SHLD TBS1
MVI A,1
;PAGE 4.12
STA TBDS
JMP T18
T69: SUB A
STA LPBC
JMP T20
T28: LXI H,LPN
INR M
MOV A,M
CPI 131
JZ T33
T30: CALL TTBF
JC T33
T37: LHLD TBLP
SHLD LSTB
JMP T25
T33: LDA OKWD
ORA A
JNZ T60
T35: LDA FLT
CPI 77
JNZ T38
T36: LXI D,DM21
T32: CALL NFE
SUB A
STA FSRL
JMP T60
T38: STA TBDS
LHLD TBLP
LXI D,TB
CALL S2F2
XCHG
LHLD THDT
DAD D
LXI D,4889
CALL S2F2
;PAGE 4.13
JC T43
T39: XCHG
LHLD LSTB
MOV A,M
CPI 128
JZ T40
CPI 130
JNZ T41
T40: LXI H,NSTB
DCR M
JMP T43
T41: STA TBS1
INX D
XCHG
SHLD TBS2
MVI A,1
STA TBDS
XCHG
INX H
MOV A,M
SUB E
MOV M,A
INX H
MOV A,M
SBB D
MOV M,A
LHLD LPA
INX H
INX H
MOV A,M
ORI 40H
MOV M,A
T43: MVI A,1
STA DISC
INR A
STA COMWD
LXI H,NSTB
MOV A,M
MVI M,0
STA NSCT
LDA FLT
STA TRACK
LXI H,TB
SHLD ADDR
MOV A,M
;PAGE 4.14
STA SECTR
CALL SDC1
LDA TRACK
STA LFCDT
INR A
STA FLT
CALL CVST
JNZ T60
T45: LXI H,0
SHLD THDT
LHLD ADDR
XCHG
LHLD TBLP
CALL C2W2
LXI H,TB
JZ T74
LHLD TBLP
CALL S2F2
MOV C,L
MOV B,H
MOV A,L
ORA A
JZ T75
INR B
T75: LXI H,TB
LDA TBDS
DCR A
JNZ T76
STA TBDS
LDA TBS1
MOV M,A
INX H
LDA TBS2
MOV M,A
INX H
LDA TBS2+1
MOV M,A
INX H
T76: CALL PDDHD
MVI A,1
STA NSTB
PUSH H
LXI H,22
SHLD THDT
POP H
T74: SHLD TBLP
LDA CDW
;PAGE 4.15
ORA A
JZ T17
LXI D,TB
CALL C2W2
JNZ T17
LHLD 7204H
LXI D,8206H
DAD D
CALL AADD
JNC T81
LXI D,DM21
T80: CALL NFE
SUB A
STA FSRL
JMP T60
T81: SHLD 8204H
T60: LHLD SFA
INX H
INX H
SHLD SFA
LDA OKWD
ORA A
JNZ S28
T62: LDA FSRL
ORA A
JZ T77
T63: MOV A,M
CPI 0FFH
JNZ T00
T77: LHLD 8204H
MOV B,H
MOV C,L
LXI D,8203H
INX B
INX B
INX B
LXI H,TB
INR C
DCR D
JZ T82
;PAGE 4.16
INR B
T82: CALL PDDHD
SHLD TBLP
MVI A,1
STA NSTB
LXI H,22
SHLD THDT
LDA 8203H+13
STA DC5+3
LXI H,DC5
CALL SDC
LDA OKWD
ORA A
JNZ S28
MVI B,0
CALL RACT
LDA OKWD
ORA A
JNZ S28
LHLD 101FH
SHLD 8206H
LDA NSTB
STA DC6+7
LXI H,DC6
CALL SDC
CALL CVST
S28: LDA OKWD
ORA A
RZ
S32: LDA DISC
ADI '0'
STA DM5V
STA DM7V
LDA COMWD
DCR A
LXI D,DM5
JNZ S31
LXI D,DM7
S31: CALL NFE
RET
;PAGE 4.17
CVST: LDA NSCT
MOV B,A
Z111: LHLD ADDR
MOV A,M
STA SECTR
MVI A,1
STA NSCT
MVI A,3
STA COMWD
CALL SDC1
ORA A
RNZ
DCR B
JNZ Z111
RET
TTBF: LHLD TBLP
LXI D,TB
CALL S2F2
XCHG
LHLD THDT
DAD D
LXI D,4888-25
CALL C2W2
RET
AADD: LXI D,LFFN
MVI B,9
CALL MDDHD
LHLD 8204H
LXI D,9
DAD D
LXI D,512
CALL C2W2
RET
ISNT: LXI H,NSTB
INR M
LHLD THDT
;PAGE 4.18
LXI D,22
DAD D
SHLD THDT
RET
RACT: LXI D,8409H
MVI C,0
Z101: LDAX D
CMP B
JNZ Z102
LHLD TBLP
SHLD LSTB
SHLD ADDR
MVI A,1
STA NSCT
STA VARSE
STA DISC
STA COMWD
MOV A,C
STA SECTR
MOV A,B
STA TRACK
MVI A,8
STA OKWD
CALL WUDCD
LDA OKWD
ORA A
RNZ
PUSH D
CALL ISNT
POP D
LHLD ADDR
SHLD TBLP
Z102: INR C
INX D
INX D
INX D
LXI H,8592H
CALL C2W2
JC Z101
RET
;PAGE 4.19
WP: LXI D,DM4
CALL SMD
LXI H,DC2
CALL SDC
ORA A
RZ
MVI A,'1'
STA DM5V
LXI D,DM5
N06: CALL NFE
RET
MM: LXI D,DM13
CALL SMD
SUB A
STA KBLC
MVI B,4
CALL RDKC
LHLD KBIB
MOV A,L
RLC
RLC
RLC
RLC
ORA H
MOV D,A
LHLD KBIB+2
MOV A,L
RLC
RLC
RLC
RLC
;PAGE 4.20
ORA H
MOV L,A
MOV H,D
R01: LXI D,3FFFH
CALL C2W2
JC R23
R21: LXI D,DM10
R24: CALL NFE
RET
R23: MOV B,M
PUSH H
LXI H,DM27+2
MOV A,B
RRC
RRC
RRC
RRC
CALL CAC
MOV A,B
CALL CAC
LXI D,DM27
CALL DCS
SUB A
STA KBLC
MVI B,2
CALL RDKC
LHLD KBIB
MOV A,L
RRC
RRC
RRC
RRC
ORA H
POP H
MOV M,A
INX H
R20: LDA KBLC
CPI 3
JC R20
LDA KBIB+2
;PAGE 4.21
R02: CPI 0AH
JZ R01
RET
CD: LXI D,DM6
CALL SMD
MVI A,1
STA ICR
LXI B,1560H
LXI D,0100H
SUB A
STA VARSE
N09: LXI H,NSCT
MOV M,C
DCX H
MVI M,80H
DCX H
SUB A
MOV M,A
DCX H
MOV M,D
DCX H
MOV M,E
DCX H
MOV M,A
DCX H
MVI M,1
DCX H
MVI M,8
CALL WUDCD
ORA A
JZ N15
;PAGE 4.22
N13: MVI A,'0'
STA DM7V
LXI D,DM7
N14: CALL NFE
MVI B,1
JMP N22
N15: LXI H,NSCT
MOV M,C
DCX H
MVI M,80H
DCX H
SUB A
MOV M,A
DCX H
MOV M,D
DCX H
MOV M,E
DCX H
MVI M,1
DCX H
MVI M,2
DCX H
MVI M,8
CALL WUDCD
ORA A
JZ N22
N19: MVI A,'1'
STA DM5V
LXI D,DM5
N20: CALL NFE
MVI B,1
N22: LHLD TRACK
XCHG
MVI A,2
CMP B
JNZ N25
N23: MVI C,82
N25: DCR B
;PAGE 4.23
JNZ N09
RET
ID: LXI D,DM8
CALL SMD
LXI H,0001H
SHLD DISC
SUB A
STA VARSE
MVI A,6
STA VARSE
MVI A,6
STA COMWD
P01: MVI A,26
STA NSCT
MVI A,1
STA SECTR
MVI A,8
STA OKWD
CALL WUDCD
P02: ORA A
JZ P06
P03: MVI A,'1'
STA DM5V
LXI D,DM5
P04: CALL NFE
RET
P06: LDA TRACK
CPI 77
JNZ P01
RET
;PAGE 4.24
CIS: LXI D,DM15
CALL SMD
LDA IS
ADI '0'
CALL DC
MVI A,'-'
CALL DC
SUB A
STA KBLC
MVI B,1
CALL RDKC
CALL D1S
LDA KBIB
ANI 0FH
R11: CPI 2
JNC R13
R12: STA IS
RET
R13: LXI D,DM10
R14: CALL NFE
RET
CBR: LXI D,DM16
CALL SMD
LDA BR
ADI '0'
CALL DC
MVI A,'-'
CALL DC
SUB A
STA KBLC
;PAGE 4.25
MVI B,1
CALL RDKC
CALL D1S
LDA KBIB
ANI 0FH
R16: CPI 5
JNC R18
R17: STA BR
DB 0,0,0,0,0,0 ; CALL IRI
RET
R18: LXI D,DM10
R19: CALL NFE
RET
DM4: DB 7,'WRITING'
DM6: DB 7,'COPYING'
DM8: DB 12,'INITIALIZING'
DM13: DB 8,'ADDRESS '
DM15: DB 6,'INPUT '
DM16: DB 10,'BAUD RATE '
DM17: DB 7,'LOADING'
DM18: DB 12,'FACE NUMBER '
DM19: DB 12,' POINT SIZE '
;PAGE 4.26
DM20: DB 20,'CANNOT FIND ALPHABET'
DM21: DB 14,'FONT DISC FULL'
DM27: DB 4,' XX-'
DC2: DB 0,2,1,0,1,0,40H,0
DC3: DB 1,1,1,0,131,3,82H,1
DC4: DB 0,1,1,0,1,3,82H,1
DC5: DB 1,1,1,1,130,6,84H,1
DC6: DB 1,2,1,0,131,3,82H,1
DC7: DB 1,1,0,0,130,92H,85H,1
THDT: DW 0
CDW: DB 0
FLT: DB 0
SFA: DW 0
LFFN: DW 0
LFSPS: DW 0
LFSSS: DW 0
LFEPS: DB 0
LFESS: DB 0
LFCDT: DB 0
;PAGE 4.27
LPN: DB 0
FPT: DB 0
LPA: DW 0
LPBC: DB 0
TBDS: DB 0
TBS1: DB 0
TBS2: DB 0
TBS3: DB 0
TBLP: DW TB
LSTB: DW 0
NSTB: DB 0
SFPS: DW 0
FSRL: DB 0
TRT: DW 6*8
DW 7*8
DW 8*8
DW 9*8
DW 10*8
DW 11*8
DW 12*8
DW 14*8
DW 0FFFFH
DW 0FFFFH
DW 0FFFFH
DW 0FFFFH
DW 0FFFFH
DRT: DW 16*8
DW 18*8
DW 20*8
DW 24*8
DW 30*8
DW 36*8
DW 42*8
DW 48*8
DW 0FFFFH
DW 0FFFFH
DW 0FFFFH
;PAGE 4.28
DW 0FFFFH
DW 0FFFFH
;I/O CODES
LTIMR EQU 0C8H
GTIMR EQU 0CAH
FTIMR EQU 0D0H
INT EQU 0C0H
DISPL EQU 0DDH
BTLCH EQU 0DAH
MSLCH EQU 0DBH
BRT1 EQU 088H
BRT2 EQU 098H
DMA EQU 0D2H
COLL EQU 0DEH
HCOGC EQU 0DFH
END